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 }