# 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 => /code/atom.awk.tgz atom.awk.tgz ## 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 ## Une réaction? => mailto:bla@bla.si3t.ch?subject=generate-atom-feed-from-any-plaintext Envoyez votre commentaire => /log/commentaires/ Voir les instructions pour utiliser la mailing-list