Ça y est ! Bascule effectuée !
Ce blog est désormais un blog statique, généré avec Pelican.
Et au passage: c'est son anniversaire ! 3 ans :)
Pourquoi migrer vers un blog statique avec Pelican ?
- par souci de simplicité:
make publish
et il n'y a plus qu'à servir les fichiers HTML générés - par sécurité, les blogs statiques permettent d'éviter toute une classe de failles: https://github.com/TryGhost/Ghost/issues?utf8=%E2%9C%93&q=security
- je préfère versionner mes articles sous
git
plutôt que d'avoir à gérer une base de données - Pelican est en Python ! Et les templates sont en
Jinja2
: je suis bien plus familier et je préfère grandement ces outils - pour pouvoir
grep
-er mes articles - manipuler de simple fichiers pour écrire des articles permet bien plus de flexibilité, comme celle d'utiliser le correcteur orthographique de
vim
par exemple, ou de faire du postprocessing
Les étapes de la migration
- convertir l'export de contenu de Ghost, au format JSON, en fichiers markdowns: gist
- établir des régles de redirection pour
nginx
: gist - chosisir un thème et l'installer: je l'ai forké pour y apporter quelques modifications: https://github.com/Lucas-C/pelican-mg
- commentaires isso (+ cron pour recevoir des emails lorsque des commentaires sont ajoutés: gist)
- gestion des tags, manquante
- correction de bugs en passant les templates au validateur HTML W3C
- ajout du blogroll et de liens/icônes dans la barre latérale
- ajout d'un tag cloud
- ajout d'images miniatures pour caque article dans l'index, avec redimensionnement automatique pour ne pas avoir une page trop lourde
- plus d'hébergement de resources sur des CDNs
- boutons de navigation permettant de filtrer les articles par tags
Bilan
Je suis assez content du résultat, mais dites-moi ce que VOUS en pensez ! :)
Le blog dispose désormais d'une fonction de recherche, déjà présente dans le thème initial. Je me demande si c'est utile à conserver, surtout que la lib "Tipue-Search" derrière n'est clairement plus maintenue (le projet a même disparu de GitHub)
Je ne vois qu'une fonctionnalité utile de Ghost qui va me manquer: l'auto-complétion des tags, pour ajouter à un article des tags déjà employés.
Et enfin, cette migration a été l'occasion de faire une 1ère contribution au projet Pelican: https://github.com/getpelican/pelican/pull/2204, et d'ajouter la gestion des templates Jinja2 à mes pre-commit hooks git permettant de valider du HTML: https://github.com/Lucas-C/pre-commit-hooks-html