~ log

Flux

Nos tricks et astuces sont étonnants. Empilements et articulations de mini-solutions techniques, de contournements maladroits, de pragmatismes innocents…

Je comprends parfaitement l’approche développée par Antoine dans la réponse qu’il a bien voulu faire à ma question sur comment ses commits se retrouvaient sur Twitter : Publier les commits : git log to RSS. Étonnamment (#oupas), elle ressemble à l’approche que j’ai moi-même mise en œuvre pour publier un flux RSS pour ce micro-blog. Retour à l’envoyeur, c’est suite à sa sollicitation que j’ai créé ce flux.

Pour contribuer à ce partage d’expérience, aussi réduit soit mon lectorat, voici comment j’ai moi-même résolu l’enjeu de la publication d’un flux RSS (ou Atom) à partir de données non structurées.

En effet, ce (b)log consiste en une seule page web, associée au (strict) minimum de CSS, composée manuellement en HTML et fut au départ publiée via FTP. Ce protocole old school avait pour intérêt de ré-expérimenter les mécanismes de publication les plus anciens, frustes et robustes du web. Mais si la composition HTML manuelle me semble toujours digne du plus grand intérêt, redoubler l’écriture du contenu dans un fichier XML (au HTML encodé…) n’est pas souhaitable.

J’ai donc mis en place une petite routine visant à diminuer la friction : me permettant d’accéder plus vite à la prise de note, de publier plus rapidement et d’automatiser la création du flux, tout en conservant le cœur du protocole : écrire en HTML. C’est un script python associé à un alias dans ma console qui se charge de raccourcir le processus, me permettant de saisir log pour éditer le fichier HTML ou log -p pour générer le flux RSS et publier le tout via rsync.

Au cœur de ce processus, la librairie BeautifulSoup permet de parcourir les article, d’en extraire le contenu et la date et de réunir l’ensemble au format xml. Chaque entrée d’un flux RSS doit comporter plusieurs données, et notamment un title, absent des billets publiés ici. Ce problème est résolu grâce à un attribut data-title, saisi dans le code de chaque billet.

La solution d’Antoine pour publier les entrées de flux sur Twitter/Mastodon fait appel aux services d’IFTTT. Solution absolument paresseuse et parfaitement pragmatique, que je vais m’empresser d’adopter.