Blog de Norore
Geek en perdition dans un monde qui va trop vite

Migration du blog de PluXML vers Jekyll

04 Jun 2022 - Norore
Un envol d’oies sauvages en pleine migration au milieu des arbres, en traversant une petite clairière.

Après des années à utiliser le CMS PluXML et à tester différentes choses dessus, il a fallu que je me rende à l’évidence : aussi merveilleux que soit cet outil, il ne me convient plus. Mes besoins ont évolué au cours du temps, ce qui est parfaitement normal et logique. Au fur et à mesure j’ai appris plein de choses en développement web, du coup, ne pas pouvoir les mettre en application correctement sur mon blog, ça a fini par me frustrer.

Dans un premier temps, nous allons voir quels sont ces nouveaux besoins et en quoi Jekyll a pu m’aider à y répondre, au moins en partie. Dans un second temps, nous verrons comment la migration de PluXML vers Jekyll a pu se faire. Enfin nous parlerons des limites de cette migration pour les personnes tatillonnes !

De nouveaux besoins

Écriture plus fluide avec la syntaxe Markdown

Dans le cadre de notre travail, en tant que développeur de façon général, on est souvent amenés à devoir écrire de la documentation : alimenter un wiki interne, répondre sur le canal de communication interne, écrire des README, rédiger des cahiers des charges… Forcément, à force d’utiliser différents environnements, il y en a un en particulier qui peut ressortir. Par exemple Markdown. Comme je suis quelqu’un qui n’aime pas forcément passer beaucoup de temps à cliquer sur des boutons pour mettre en forme mon texte (LaTeX mon amour !), j’ai fini par chercher un plugin qui me permette de remplacer le WYSIWYG présent de base. Sans trop de succès.

Un menu latéral pour les titres

Il arrive que certains articles soient très longs. Et ça peut vite être frustrant si vous avez dû rafraîchir votre navigateur, même par inadvertance. Les personnes qui vivent chez leur(s) chat(s) savent de quoi je parle. J’ai donc cherché s’il existe une extension pour avoir un menu latéral qui permet de cliquer sur les titres de l’article pour se rendre directement sur la portion d’article que l’on souhaite lire. J’en ai trouvé un dans un recoin du forum de PluXML mais qui ne semblait pas très à jour et, n’ayant aucune volonté de reprendre le code d’un·e inconnu·e, je le fais déjà suffisamment sur mon lieu de travail, j’ai fini par lâcher l’affaire.

Juste écrire et mettre à jour

Une autre chose aussi qui me donnait de moins en moins l’envie d’utiliser PluXML, c’était le fait de devoir me connecter à l’interface d’administration pour écrire dessus. Avec le risque d’avoir un rafraîchissement inopiné de la page ou, le plus embêtant sur ma pause déjeuner au travail par moments, la connexion internet qui saute au moment d’enregistrer les modifications et perdre des dizaines de phrases.

L’avantage de Jekyll c’est que je peux juste écrire depuis mon ordinateur et, une fois que le billet me convient, je le déplace dans le répertoire _posts/, je vérifie qu’il s’affiche correctement, et je lance la mise à jour sur le serveur. En plus de cela, rien ne m’empêche de mettre le code source sur une solution de versionnement pour pouvoir y accéder aussi au boulot !

Un autre inconvénient à maintenir un CMS comme PluXML, et pourtant c’est un des meilleurs pour ce qui est de la facilité de maintenance, ce sont les mises à jour. Qui dit site dynamique en PHP dit risque de vulnérabilité. Et donc il faut penser à mettre à jour dès que possible. Avec un site statique, on réduit ce risque de vulnérabilité.

OK, on se lance ?

Chercher une alternative

Là j’ai triché. J’avais déjà envie de regarder du côté de Jekyll.

Codant déjà en Ruby-On-Rails et étant déjà familier de l’environnement de Ruby, apprendre ce générateur de blog statique n’a pas été trop compliqué. Là où ça a un peu plus coincé, ça a été de trouver comment migrer les articles et les brouillons existants. Jekyll proposait déjà différents importateurs, mais il n’en existait pas encore pour faire la migration depuis PluXML. Un peu d’huile de coude, de lecture de documentations, une bonne dose de courage, et on propose un importer à la communauté !

Importer depuis PluXML vers Jekyll

J’ai fait une contribution ! Une vraie ! La documentation peut être trouvée sur le site officiel : https://import.jekyllrb.com/docs/pluxml/. Le lien vers le code source de l’importer n’est pas le bon, le code à jour est sur cette page : https://github.com/jekyll/jekyll-import/blob/master/lib/jekyll-import/importers/pluxml.rb

Le script marche plutôt bien, mais il présente un gros défaut : si vous avez des images, vous devrez mettre à jour par vous-même vos différents billets. Si l’un·e d’entre vous a des idées pour améliorer le script : lancez-vous, ça ne vous coûte rien d’essayer, au pire vous allez réussir, dans tous les cas, vous serez fiers de vous !

Trouver les bonnes extensions

Jekyll apporte une base pour la conception de blog statique mais il ne fait pas tout. Voici ce que j’ai ajouté pour apporter ce qui me semblait indispensable et utile :

  • pour la pagination, on peut utiliser la gem jekyll-paginate ;
  • pour le menu latéral sur les billets avec plusieurs titres, la gem jekyll-toc ;
  • pour le flux RSS, jekyll-feed, qui fournit une page feed.xml par défaut, à la racine du site. Cette page peut être renommée si besoin ou souhaité.
  • pour une “carte” du site, jekyll-sitemap, qui fournit une page sitemap.xml à la racine du site. Je ne sais pas trop si c’est vraiment utile, mais au cas où ça peut vous être utile d’une quelconque façon, c’est en place.

Quelques limites

C’est du HTML !

Alors oui, un des problèmes de ce script d’import, c’est qu’il dégrossit le travail mais il ne fait pas tout non plus. Pour convertir les fichiers du format HTML au format MD j’ai dû utiliser la méthode ancestrale du copié-collé sur un outil en ligne qui permet de faire la conversion, puis repasser sur les documents pour remettre au propre. Il a aussi fallu en profiter pour mettre à jour les liens vers les anciens billets, puisque le format des URLs a changé.

Plus de commentaires

Il n’y a pas la possibilité, sur un site statique, d’avoir des commentaires. Il existe bien sûr des solutions, certaines payantes, d’autres gratuites mais peu regardantes sur le RGPD, ou des gratuites mais demandant un peu plus d’effort, comme Commento.io dont on a déjà parlé il y a de cela un petit moment ici. Pour l’instant, je n’ai pas l’intention de remettre la possibilité de laisser un commentaire.

Je n’ai pas ou plus la patience intellectuelle pour trier la critique constructive, la critique non constructive, les trolls, le spam.

Si vous souhaitez discuter, la porte est ouverte sur les réseaux sociaux, ne vous attendez pas forcément à une réponse immédiate de ma part. Je peux être fatigué·e, ne pas répondre sur le moment et y revenir plus tard. Ou estimer que cela n’attend pas forcément une réponse de ma part, auquel cas vous aurez peut-être un petit “like”.

Quelques casses ?

Forcément, changer de système ne se fait pas sans casse. Si les commentaires ont disparu et sauté (dommage ou tant mieux ? À vous de choisir.), il est également gênant pour vous, si vous me suivez par les flux RSS, que votre flux ait sauté. J’aurai dû anticiper et vous informer avant. C’est ce que j’aurai fait si je n’avais pas eu une longue traversée du désert dont je semble, pour l’instant du moins, arriver à sortir. Le nouveau flux RSS devrait normalement être disponible à l’adresse https://blog.norore.fr/feed.xml

Je crois avoir fait le tour sur cette migration. Il me reste à mettre en place le déploiement et ça devrait rouler. Pour celleux d’entre vous qui souhaitent faire cette même migration : bon courage !


Source de l’image d’accroche : Un envol d’oies sauvages en pleine migration au milieu des arbres, en traversant une petite clairière. Photographie de SD-Pictures sur Pixabay