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

commit 06c7972fe616fae72aa5977d043fb02349bf493a
parent 630c1eb5a72d66478ec3e04d7693e42998bd275d
Auteur: ldp <ldp@asteride.xyz>
Date:   Wed,  7 Aug 2024 17:18:14 -0400

[gen] échappement de certains caractères

Diffstat:
Mlib/vers_html.awk | 40+++++++++++++++++++++++++---------------
1 file changed, 25 insertions(+), 15 deletions(-)

diff --git a/lib/vers_html.awk b/lib/vers_html.awk @@ -3,20 +3,20 @@ function afficher_entete( message) { print "<html lang=\"fr\">" print "<head>" if (meta["titre"]) - print "\t<title>" meta["titre"] "</title>" + print "\t<title>" ech(meta["titre"]) "</title>" print "\t<meta charset=\"UTF-8\">" if (meta["auteur"]) - print "\t<meta name=\"author\" content=\"" meta["auteur"] "\">" + print "\t<meta name=\"author\" content=\"" ech(meta["auteur"]) "\">" print "\t<meta name=\"robots\" content=\"index,follow\">" print "\t<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\">" print "\t<link rel=\"icon\" href=\"data:;base64,iVBORw0KGgo=\">" print "<style>" print "\thtml {" - print "\t\tbackground-color: #000000;" - print "\t\tcolor: #ffffff;" + print "\t\tbackground-color: #232323;" + print "\t\tcolor: #e3e3e3;" print "\t}" print "\tbody {" - print "\t\tfont: 1.2em/1.7 serif;" + print "\t\tfont: 1.1em/1.5 serif;" print "\t\tmax-width: 760px;" print "\t\tmargin: auto;" print "\t\tpadding: 15px;" @@ -35,7 +35,7 @@ function afficher_entete( message) { print "<header>" print "\t<hr>" if (meta["titre"]) - print "\t<h1>" meta["titre"] "</h1>" + print "\t<h1>" ech(meta["titre"]) "</h1>" if (meta["type"] == "accueil") message = meta["message"] else if (meta["date_pub"]) { @@ -44,7 +44,7 @@ function afficher_entete( message) { message = message " et modifié le " meta["date_mod"] } if (message) - print "\t<p><i>" message "</i></p>" + print "\t<p><i>" ech(message) "</i></p>" print "\t<hr>" print "</header>" } @@ -52,6 +52,8 @@ function afficher_entete( message) { } function afficher_pieddepage() { + if (meta["type"] == "article" && meta["auteur"]) + print "<p><i>— " ech(meta["auteur"]) "</i></p>" print "</main>" print "<hr>" if (meta["type"] != "accueil") { @@ -67,15 +69,15 @@ function afficher_pieddepage() { } function elem_titre2(titre) { - print "<h2>" titre "</h2>" + print "<h2>" ech(titre) "</h2>" } function elem_titre3(titre) { - print "<h3>" titre "</h3>" + print "<h3>" ech(titre) "</h3>" } function elem_citation(cit) { - print "<blockquote><p>" cit "</p></blockquote>" + print "<blockquote><p>" ech(cit) "</p></blockquote>" } function elem_liensdeb() { @@ -87,9 +89,9 @@ function elem_liensfin() { } function elem_lien(lien, titre) { - printf("<a href=\"%s\">", lien) + printf("<a href=\"%s\">", ech(lien)) if (titre) - printf("%s", titre) + printf("%s", ech(titre)) print "</a><br>" } @@ -102,7 +104,7 @@ function elem_prefin() { } function elem_pre(ligne) { - print ligne + print ech(ligne) } function elem_listedeb() { @@ -114,7 +116,7 @@ function elem_listefin() { } function elem_liste(elem) { - print "<li>" elem "</li>" + print "<li>" ech(elem) "</li>" } function elem_lignevide() { @@ -122,5 +124,13 @@ function elem_lignevide() { } function elem_paragraphe(contenu) { - print "<p>" contenu "</p>" + print "<p>" ech(contenu) "</p>" +} + +# échapper +function ech(texte) { + gsub("<", "\\&lt;", texte) + gsub(">", "\\&gt;", texte) + gsub("&", "\\&amp;", texte) + return texte; }