atom.awk : Générer un flux atom à partir de billets texte brut
2022-05-09T12:50:44Z
TL;DR
mkdir site cd site mkdir blog vi blog/entry1.txt # write something, first line is title date +'%Y-%m-%dT%TZ' > blog/entry1.txt.pubdate $ find blog/ | awk -v domain="domain.tld" -v max=100 -v template=template.xml -f atom.awk > atom.xml
Description
Que vous écriviez vos billets de blog en text brut, markdown, gemtext ou je ne sais quel autre langage, vous souhaitez probablement créer un flux atom. Avoir du contenu html est peu pratique (il faut échapper le code html) et ajoute des contraintes inutiles à un flux atom. Je vous propose de publier vos articles avec la même apparence dans le flux que dans le fichier source.
C'est ce qui est d'ailleurs proposé sur le site shinobi.website : publier du contenu via un flux ATOM seulement.
Cet outil va prendre en entrée une liste de fichiers contenant les billets de blog et génère un flux ATOM valide. Chaque objet du flux ATOM a pour description le contenu du billet.
Pas besoin d'échapper du html : c'est du texte brud dans une balise CDATA.
Vous pouvez même écrire "]]>" dans vos billets, ça sera échappé (pas comme le script de shinobi.website).
Pour intégrer un fichier "blogentry.txt" dans le flux, un autre fichier nommé "blogentry.txt.pubdate" doit se trouver juste à côté. Ce dernier contient la date de publication au format '%Y-%m-%dT%TZ' (voir strftime).
Il suffit d'awk pour utiliser atom.awk, disponible sur la plupart des unix-likes.
Téléchargement
Options
- "max" : maximum d'entrées dans le flux
- "domain" : Nom de domaine du flux
- "template" : Fichier modèle au début du flux à ajuster à vos beosin. voir template.xml dans l'archive
Exemple
$ find blog/ | awk -v domain="domain.tld" -v max=100 -v template=template.xml -f atom.awk > atom.xml
Voir aussi
https://shinobi.website/index.txt 🌐