Vendredi 23 novembre 2018

Béni soit le vendredi !

Publication dans le flux Atom

On a vu hier comment produire un flux Atom, et j'en ai profité pour synchroniser le flux avec les quelques entrées existantes dans le journal de 2018.

Une petite fonction sympathique a rejoint mon répertoire de commandes personnelles, à savoir escapehtml, définie comme suit dans mon fichier .bashrc :

escapehtml () {
	sed -e 's/&/\&amp;/g' -e 's/</\&lt;/g' -e 's/>/\&gt;/g' "$@"
}

De cette façon, si je veux échapper un texte pour ensuite le publier dans une page en HTML, je n'ai plus qu'à lancer escapehtml, puis à taper mon texte, et <Ctrl-d> une fois terminé. Voici un exemple clair :

$ escapehtml
<p>HTML & Co.</p>
^D
&lt;p&gt;HTML &amp; Co.&lt;/p&gt;

Et voilà un cas d'usage classique, je m'en suis servi pour la rédaction de cet article :

$ escapehtml
sed -e 's/&/\&amp;/g' -e 's/</\&lt;/g' -e 's/>/\&gt;/g' "$@"
^D
sed -e 's/&amp;/\&amp;amp;/g' -e 's/&lt;/\&amp;lt;/g' -e 's/&gt;/\&amp;gt;/g' "$@"

L'utilisation de la liste d'arguments $@ permet de faire de même avec des fichiers complets, plutôt que de taper le texte à la main. Enfin, il est possible de construire un fichier avec l'opérateur de redirection >, mais ça n'a pas grand intérêt dans ce cas.

Une fois publié dans le RSS, la sortie de la commande escapehtml ci-dessus a moyen d'être bien drôle, telle que vue dans le code XML. :^)

Retour sur le légal

La licence CC0 est très bien pour rédiger le texte qui constitue chaque entrée de journal, les articles, etc. Cependant pour les programmes, il existe divers risques de retour de flamme relatif à l'ouverture trop large du code source. Le problème notable est l'usage des noms des personnes dans les versions modifiées du programme, notamment quand une version modifiée cause de la casse, et que c'est mon courriel qui apparait en tête du programme. :^(

En suivant les recommandations de GNU vis-à-vis des choix de licences, j'ai opté pour la solution la moins prise de tête, et utiliserais la licence Apache 2.0 pour la publication des petits programmes.

Collage des morceaux ensemble : html2rss

Pour en revenir à la construction du flux Atom, maintenant qu'on a une licence à peu près décente pour la publication de code, et qu'on a identifié comment construire le flux à partir d'un fichier HTML, voici la toute première version de html2rss, publiée sous licence Apache 2.0.

La commande html2rss telle qu'elle existe à l'instant t n'est absolument pas industrialisée du tout. Elle ne gère aucun des formats RSS d'origine, ne permet pas d'engendrer de nouveau flux Atom, n'est pas flexible quand à la manière d'être appelée, et ne permet pas de choisir dynamiquement de flux, ajoute une nouvelle entrée à chaque appel au lieu de mettre à jour l'entrée existante, etc. Toutefois, elle me permettra de publier dans le flux à la racine du site à peu près automatiquement sans arrachage de cheveux.
[ICO]NameLast modifiedSize
[PARENTDIR]Parent Directory  -
[TXT]html2rss.sh2018-11-24 00:00 2.3K

  —