--- title: Migration de Wordpress vers Jekyll wordpress_url: http://people.happycoders.org/dax/2009/11/09/migration-wordpress-jekyll layout: post tags: [wordpress, jekyll, ruby, web, blog] categories: [geek, blog] author: David --- Les rares abonnés au flux RSS de mon blog l'auront remarqué, je ne poste pas vraiment régulièrement (j'espère m'améliorer, j'ai plein de sujets de geek à partager :) ). En fait, jusqu'à maintenant, je passais plus de temps à mettre à jour [Wordpress](http://www.wordpress.org) pour éviter d'être à la traine niveau correction de failles de sécu. Si seulement c'était juste Wordpress, les plugins que j'utilisais devaient eux aussi subir une mise à jour pour suivre l'évolution des APIs de Wordpress. Et tout ne se passait pas toujours très bien :(. Comme je suis dans ma période "revenons aux sources, pourquoi ai-je besoin de m'encombrer avec ce #$%@!!. de XXX ?" (remplacer XXX par Wordpress, Eclipse, OpenOffice ou tout autre soft qui finit immanquablement en usine à gaz), et que je suis un peu un geek sur les bords, je me suis dis que j'allais essayer [Jekyll](http://github.com/mojombo/jekyll). Qu'est ce que Jekyll ? ---------------------- C'est un petit outil écrit en Ruby qui à partir de templates [Liquid](http://www.liquidmarkup.org/) et de fichiers [Markdown](http://daringfireball.net/projects/markdown/syntax) (ça ressemble à une syntaxe de Wiki : voyez le [source de ce post](/dax/source/2009-11-09-migration-wordpress-jekyll.markdown)) génère un blog en statique que je dépose ensuite derrière un Apache. Par où commencer ? ------------------ Je n'ai toutefois pas fait table rase, j'ai repris l'existant de mon Wordpress en commençant par migrer le système de commentaire sur le service [Disqus](http://disqus.com) à l'aide du [plugin Wordpress qui va bien](http://wordpress.org/extend/plugins/disqus-comment-system/). Oui, un site avec des pages HTML en statique va avoir du mal à conserver les commentaires des posts! Je délègue donc, tout en me permettant une migration des commentaires tout en douceur : * Le plugin Disqus pour Wordpress a une fonction de migration, * Le nouveau site inclus ensuite Disqus avec les quelques lignes de Javascript qui vont bien. Ensuite, un [petit script](http://github.com/mojombo/jekyll/blob/master/lib/jekyll/converters/wordpress.rb) permet d'extraire les posts de la base de données Wordpress pour les transformer en fichier Markdown. Le résultat n'est pas parfait, mais ça permet de débuter. Le templating ------------- Une fois les posts migrés, il reste encore à écrire les templates dans lesquels les articles (et autres pages) s'insèreront. Rien de magique, du HTML, du CSS, une pincée de Javascript et un peu de [Liquid](http://www.liquidmarkup.org/) pour faire quelques boucles, quelques conditions : {% highlight html %} {% endhighlight %} Et donc ? --------- Oui, et donc ? Et bien je dirais que je me suis bien fait plaisir ;), j'ai passé un peu plus de temps que prévu quand même vu le niveau HTML+CSS que j'avais. Le blog est versionné dans un [repo Git](/dax/projects/blog.git), donc plus de problème de backup de base MySQL, de migration, de restauration approximative, un ``git clone`` suivi de ``rake`` suffit (j'utilise [Rake](http://) pour générer quelques pages supplémentaires, et lancer la génération du site par Jekyll).