Migration du blog de ghost à pelican

Pelikan Man 009 by Francesco Sambo

Ç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