vers_html.awk (2936B)
1 function afficher_entete( message) { 2 print "<!DOCTYPE html>" 3 print "<html lang=\"fr\">" 4 print "<head>" 5 if (meta["titre"]) 6 print "\t<title>" ech(meta["titre"]) "</title>" 7 print "\t<meta charset=\"UTF-8\">" 8 if (meta["auteur"]) 9 print "\t<meta name=\"author\" content=\"" ech(meta["auteur"]) "\">" 10 print "\t<meta name=\"robots\" content=\"index,follow\">" 11 print "\t<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\">" 12 print "\t<link rel=\"icon\" href=\"data:;base64,iVBORw0KGgo=\">" 13 print "<style>" 14 print "\thtml {" 15 print "\t\tbackground-color: #232323;" 16 print "\t\tcolor: #e3e3e3;" 17 print "\t}" 18 print "\tbody {" 19 print "\t\tfont: 16px/1.7 serif;" 20 print "\t\tmax-width: 760px;" 21 print "\t\tmargin: auto;" 22 print "\t\tpadding: 15px;" 23 print "\t}" 24 print "\ta { color: #1177ff; text-decoration: none; }" 25 print "\ta:hover { color: #ff0000; }" 26 print "\theader { text-align: center; padding-bottom: 10px; }" 27 print "\tpre { line-height: normal; overflow: auto; }" 28 print "\tblockquote { font-style: italic; }" 29 print "</style>" 30 print "</head>" 31 print "<body>" 32 print "<main>" 33 if (meta["titre"]) { 34 print "<header>" 35 print "\t<hr>" 36 if (meta["titre"]) 37 print "\t<h1>" ech(meta["titre"]) "</h1>" 38 if (meta["type"] == "accueil") 39 message = meta["message"] 40 else if (meta["date_pub"]) { 41 message = "Publié le " meta["date_pub"] 42 if (meta["date_mod"]) 43 message = message " et modifié le " meta["date_mod"] 44 } 45 if (message) 46 print "\t<p><i>" ech(message) "</i></p>" 47 print "\t<hr>" 48 print "</header>" 49 } 50 print 51 } 52 53 function afficher_pieddepage() { 54 if (meta["type"] == "article" && meta["auteur"]) 55 print "<p><i>— " ech(meta["auteur"]) "</i></p>" 56 print "</main>" 57 print "<hr>" 58 if (meta["type"] != "accueil") { 59 print "<footer>" 60 print "<nav>" 61 print "<p><a href=\"/~ldp/\">Retourner à la page d'accueil</a></p>" 62 print "</nav>" 63 print "</footer>" 64 } 65 print "</body>" 66 print "</html>" 67 68 } 69 70 function elem_titre2(titre) { 71 print "<h2>" ech(titre) "</h2>" 72 } 73 74 function elem_titre3(titre) { 75 print "<h3>" ech(titre) "</h3>" 76 } 77 78 function elem_citation(cit) { 79 print "<blockquote><p>" ech(cit) "</p></blockquote>" 80 } 81 82 function elem_liensdeb() { 83 printf("<p>") 84 } 85 86 function elem_liensfin() { 87 printf("</p>") 88 } 89 90 function elem_lien(lien, titre) { 91 printf("<a href=\"%s\">", ech(lien)) 92 if (titre) 93 printf("%s", ech(titre)) 94 print "</a><br>" 95 } 96 97 function elem_predep(desc) { 98 printf "<pre>" 99 } 100 101 function elem_prefin() { 102 print "</pre>" 103 } 104 105 function elem_pre(ligne) { 106 print ech(ligne) 107 } 108 109 function elem_listedeb() { 110 print "<ul>" 111 } 112 113 function elem_listefin() { 114 print "</ul>" 115 } 116 117 function elem_liste(elem) { 118 print "<li>" ech(elem) "</li>" 119 } 120 121 function elem_lignevide() { 122 print 123 } 124 125 function elem_paragraphe(contenu) { 126 print "<p>" ech(contenu) "</p>" 127 } 128 129 # échapper 130 function ech(texte) { 131 gsub("<", "\\<", texte) 132 gsub(">", "\\>", texte) 133 gsub("&", "\\&", texte) 134 return texte; 135 }