Migration de Gatsby vers Pelican
Bonjour... ça fait un moment, premier article de 2023, youpi ! J'ai tellement de choses à raconter, mais je vais commencer par le premier sujet sur lequel j'ai mis longtemps à écrire : mon blog.
J'ai changé de framework, en passant de Gatsby.js à Pelican.
Pourquoi migrer mon blog ?
Bonne question ! Comme je fais de plus en plus de Python, il me semblait plus logique d'avoir un blog en Python. En plus, c'est plus simple à maintenir puisque j'utilise ce langage tous les jours. Je voulais aussi avoir moins de dépendances.
Mon site avec Gatsby avait beaucoup de dépendances, vous pouvez le voir avec mon package.json. Comparez maintenant avec le requirements.txt.
Dépendances du package.json vs dépendances du requirements.txt
Comme vous pouvez le voir, le changement est énorme, et il s'agit des dépendances et des dépendances de développement, sans afficher les sous-dépendances.
Je devais passer à Gatsby V3, car mon projet avait trop de dépendances que je ne pouvais pas mettre à jour. Certaines sont tout simplement de vieilles dépendances qui ne sont plus maintenues.
Sinon, je devais mettre à jour mon projet Gatsby, et j'avais trop de conflits de dépendances, car j'avais utilisé un starter pour créer mon blog, et ce starter n'est pas entièrement compatible avec les dernières versions de Gatsby. Je sais à quel point il peut être difficile de maintenir un projet, surtout quand on est seul·e. J'aurais pu contribuer, mais à mon avis je ne fais pas assez de Gatsby pour ça.
J'ai finalement décidé de passer à autre chose.
J'ai choisi d'utiliser Pelican, c'est plutôt sympa. Il existe des plugins pour améliorer son site, et j'en ai utilisé un pour importer le contenu existant d'un autre site. Je m'en suis servie pour déplacer mon blog, c'est génial ! La documentation complète est ici.
J'ai utilisé un thème personnalisé, créé par mes soins, pour avoir le style que je voulais. Je l'ai fait correspondre à mon ancien blog pour que les gens ne remarquent pas que je suis passée à Pelican. Vous pouvez trouver des thèmes déjà prêts, ou un thème de base à partir duquel créer le vôtre. La documentation donne quelques conseils pour créer votre propre thème.
J'ai donc commencé avec un thème existant et j'ai modifié les éléments suivants :
- Revoir les templates pour qu'ils correspondent à ce que je veux
- Ajouter les pages manquantes
- Modifier mon style CSS et mon JavaScript
La partie amusante, c'était de convertir ce qu'il fallait de React.js en pur JS, pour avoir moins de dépendances et un code plus simple, car il me manquait certaines choses sur mon site :
- L'animation de la page d'accueil
- Le bouton pour basculer en mode sombre
- Un peu de JS pour la personnalisation (ajustement d'accessibilité pour aria-label)
Une fois que c'était fait, j'ai ajouté quelques plugins pour améliorer le site, comme le SEO ou les articles similaires dans un article. Vous pouvez trouver les plugins dans l'organisation Pelican.
Et voilà ! ✨
Exemples
Je sais que certain·es d'entre vous vont dire : c'est cool, Sarah, mais y a-t-il d'autres sites qui utilisent Pelican ?
Oui, il y en a ! Voici les personnes que je connais qui utilisent Pelican, mais j'imagine qu'il existe d'autres sites :
- Adam Johnson - https://adamj.eu/
- Julien Palard - https://mdk.fr/
- Justin Mayer, créateur de Pelican - https://justinmayer.com/
- Paolo Melchiorre - https://www.paulox.net/
- Tom Carrick - https://carrick.eu/
Apprentissages et progrès
Cette migration n'a pas été aussi difficile que je le pensais. Je l'ai faite en quelques jours, répartis sur mon temps libre, car je n'avais pas beaucoup de temps à y consacrer, mais je pense que j'aurais pu aller plus vite. Trop de choses à faire, pas assez de temps.
C'était amusant de créer le thème du blog et de voir comment Pelican génère les templates, c'est vraiment bien. En plus, j'ai ajouté des catégories et une section TIL, il faut que j'ajoute d'autres articles, mais c'est un autre sujet. Pelican permet de créer facilement des catégories et de modifier ou supprimer des éléments comme on veut. Il est facilement personnalisable selon vos besoins.
Avoir moins de dépendances est clairement un bon point pour moi : moins de problèmes, et c'est plus facile à maintenir. Je suppose que je suis comme beaucoup de gens qui aiment leur blog mais ne peuvent pas y consacrer beaucoup de temps.
Pelican est vraiment simple à utiliser. Je n'ai pas l'habitude d'écrire en rst, mais ça ne change pas grand-chose par rapport au markdown. Notez que vous pouvez changer le format des articles si besoin, mais la plupart des documentations open source pour Python utilisent le rst, donc ce n'est pas un problème pour moi.
J'ai aussi eu le temps d'améliorer un peu l'accessibilité de mon blog. Ce n'est clairement pas terminé, mais j'ai eu le temps de faire quelques corrections, ce qui est cool.
Je peux maintenant faire des brouillons d'articles, ce qui est vraiment pratique, car je demande à des personnes de relire mes articles quand elles en ont envie, puisque l'anglais n'est pas ma langue maternelle. Du coup, vous ne trouverez pas mon blog sur GitHub, désolée.
Je recommande Pelican, je n'ai trouvé aucun inconvénient jusqu'ici.
La prochaine étape sera d'améliorer encore l'accessibilité et d'ajouter plus d'articles, bien sûr !