capsite

Ressources et outils pour la génération de ma capsule et de mon site
git clone git://git.asteride.xyz/~ldp/capsite.git
Journaux | Fichiers | Références

analyser.awk (1210B)


      1 BEGIN {
      2 	dans_pre = 0
      3 	dans_liste = 0
      4 	section = 0 # entête
      5 }
      6 
      7 section == 0 && /^$/ {
      8 	section = 1
      9 	afficher_entete()
     10 	next
     11 }
     12 
     13 section == 0 {
     14 	i = index($0, ":")
     15 	etq = substr($0, 1, i-1)
     16 	meta[etq] = substr($0, i+1)
     17 	next
     18 }
     19 
     20 /^```/ {
     21 	if (dans_pre) {
     22 		elem_prefin()
     23 		dans_pre = 0
     24 	} else {
     25 		elem_predep(substr($0, 4))
     26 		dans_pre = 1
     27 	}
     28 	next
     29 }
     30 
     31 dans_pre == 1{
     32 	elem_pre($0)
     33 	next
     34 }
     35 
     36 /^# / {
     37 	elem_titre1(substr($0, 2))
     38 	next
     39 }
     40 
     41 /^## / {
     42 	elem_titre2(substr($0, 3))
     43 	next
     44 }
     45 
     46 /^### / {
     47 	elem_titre3(substr($0, 4))
     48 	next
     49 }
     50 
     51 /^> / {
     52 	elem_citation(substr($0, 2))
     53 	next
     54 }
     55 
     56 /^=> / {
     57 	if (!dans_liens) {
     58 		elem_liensdeb()
     59 		dans_liens = 1
     60 	}
     61 	lien = $2
     62 	$1 = ""
     63 	$2 = ""
     64 	if (match(lien, "[.]$"))
     65 		lien = lien format
     66 	elem_lien(ee(lien), ee($0))
     67 	next
     68 }
     69 
     70 /^\* / {
     71 	if (!dans_liste) {
     72 		elem_listedeb()
     73 		dans_liste = 1
     74 	}
     75 	elem_liste(substr($0, 2))
     76 	next
     77 }
     78 
     79 /^$/ {
     80 	if (dans_liste) {
     81 		elem_listefin()
     82 		dans_liste = 0
     83 	} else if (dans_liens) {
     84 		elem_liensfin()
     85 		dans_liens = 0
     86 	}
     87 	elem_lignevide()
     88 	next
     89 }
     90 
     91 {
     92 	elem_paragraphe($0)
     93 }
     94 
     95 END {
     96 	if (dans_liste) {
     97 		elem_listefin()
     98 		dans_liste = 0
     99 	}
    100 	afficher_pieddepage()
    101 }
    102 
    103 # enlever les espaces
    104 function ee(texte) {
    105 	sub("^[ \t]*", "", texte)
    106 	return texte
    107 }