Jekyll est un générateur de site statiques écrit en Ruby.
Cela peut paraître tout à fait absurde par rapport à un CMS mais cela apporte bien des avantages si le projet le permet :
- Au final c’est un site statique qui est uploadé sur le serveur (donc pas besoin de Ruby).
- C’est difficile de faire plus rapide qu’un site statique.
Dans ce cas, pourquoi passer par un générateur ?
- Un générateur permet de gérer plus facilement tous les assets du projet (CSS, JS, images et compression, etc.)
- On peu utiliser des layout et des partials pour ne pas avoir à ré-écrire chaque fois son code.
- Le contenu de chaque page est séparé de son affichage et lorsqu’on lance la génération du site, le générateur injecte le contenu dans le moule correspondant.
Un exemple simple de blog avec Jekyll
Dans le cas d’un blog, nous avons :
- Un fichier de layout général qui contient tout l’HTML principal (doctype, head, métas) avec éventuellement footer, header et sidebars en partials. Ce fichier va également définir le comportement de la page d’accueil (affichage des X derniers posts). Jekyll utilise par défaut Liquid comme langage de templating.
- Un autre layout pour l’affichage des billets de blogs.
- Un répertoire contenant le contenu proprement dit (les billets).
- Plusieurs choix sont possibles, mais par défaut ce sont des fichiers markdown un peu spéciaux. Ils ont un en-tête avec différentes variables pour le titre, l’auteur, la date et éventuellement les catégories du billet.
- On peut également définir un layout différent de celui par défaut.
- Un fichier de configuration (en yaml) qui va servir de chef d’orchestre et dire à Jekyll quoi faire pour la génération.
Lorsqu’on lance la génération :
- Jekyll compile les différents assets suivant les règles prédéfinies ;
- Génère les pages HTML à parti des fichiers sources markdown.
- Jekyll peut générer également une sitemap, des archives, etc.
- Il peut également parser les fichiers sources et transformer par exemple des liens vers flickr en mini-galeries d’images ou des liens youtube en players intégrés à la page. Il existe de nombreux plugins pour cela.
A noter que Jekyll permet aussi d’avoir un mode serveur où la compilation se fait à la volée et où on peut voir les résultats sur un serveur local.
Enfin, il existe des plugins pour pouvoir automatiquement déployer son site via FTP, SFTP, Git etc.
Jekyll est notamment très bien intégré à Github et c’est la solution recommandée pour générer les pages de présentation d’un projet.
Jekyll n’est pas limité aux blogs, on peut tout à fait réaliser un portfolio ou des pages produits en rajoutant les layouts correspondants. Il suffit en suite de définir dans chaque fichier source le layout à utiliser pour sa génération.
Si vous voulez en savoir plus :
- http://code.tutsplus.com/tutorials/building-static-sites-with-jekyll--net-22211
- http://www.andrewmunsell.com/tutorials/jekyll-by-example
- http://jekyllbootstrap.com/
Pourquoi utiliser Jekyll avec Drupal ?
Quelques liens utiles
- sur l’utilisation de Jekyll avec Drupal chez Gizra : http://www.gizra.com/content/custom-css-as-contrib-with-jekyll/
- Le Jekyll generator (Yeoman) de Gizra sur Github (pas encore finalisé) : https://github.com/robwierzbowski/generator-jekyllrb
- Un exemple de (très bon) blog réalisé avec fork de Jekyll (Octopress) : http://ludovic.coullet.net