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