☕ 3 min de lecture
Ce qui suit se base sur l’utilisation de Jekyll v1.5.1.
Ce post fait suite à celui de Mai 2013 où je vous faisais mon retour d’expérience sur la création d’un blog en plusieurs langue. Depuis Jekyll a (sérieusement) monté en versions et voici les correctifs à apporter en ce sens.
Après bientôt une année d’utilisation (quoiqu’ayant écrit peu d’articles ces derniers mois), voilà ce que je retiens de Jekyll :
En revanche, si vous élaborez vous-même vos plugins, il vous faudra compiler tout d’abord votre site pour envoyer la version statique sur GitHub.
Pour rappel, voici à quoi ressemble l’architecture de mon blog :
.
|-- _data/ # Stock de variables et configuration
|-- _includes/ # Bouts de codes inclus ailleurs
|-- _layouts/ # Templates du site
|-- _plugins/ # Plugins pour surcharger de Jekyll
|-- assets/ # LESS/CSS, JS, images, …
|-- fr/ # Categorie FR
| |-- _posts/ # Articles en français
| |-- index.html # Pages html en français
| |-- about.html
| |-- (…)
|
|-- en/ # Catégorie EN
| |-- _posts/ # Articles en anglais
|
|-- index.html # Pages html par défaut (EN)
|-- about.html
|-- (…)
|-- _config.yml # Fichier de configuration de JekyllLorsqu’il est lancé, Jekyll génère le site statique final dans le dossier _site/. C’est cette version qui est envoyée (et servie) sur GitHub.
Note - J’ai retiré de _config.yml les variables qui dépendent de la langue et que je réutilise dans les templates.
Elles sont désormais isolées proprement dans le fichier _data/locales.yml.
Naturellement, mettre à jour Jekyll de la v0.12 à la v1.5 a nécessité quelques arrangements dans le fichier config.yml, histoire de retirer ce qui était deprecié et ajouter ce qui manquait.
Egalement, il a fallu toucher aux plugins…
C’est LE plugin qu’il a fallu modifier, le fonctionnement de la pagination ayant radicalement changé avec Jekyll.
N’ayant rien trouvé de convaincant, j’ai ré-écrit mon propre plugin category_pagination.rb.
Ajoutez-le simplement à votre dossier _plugins/, puis configurez votre config.yml en fonction du comportement attendu :
paginate_per_category: true si vous souhaitez activer le plugindefault_category: "en" (optionnel) si vous souhaitez que la pagination à la racine du projet ne prenne pas en compte tous les posts, mais uniquement ceux d’une catégorieLe plugin fonctionne très simplement :
Je vous laisse jeter un oeil à fr/index.html si besoin.
Note - C’est un premier jet qui peut aussi servir de pagination par catégorie de manière assez simpliste et orientée. N’hésitez pas à proposer des améliorations =)
i18n_filter.rb customise le traitement de page.date en fonction de la langue.
J’ai du ajouter un fichier _locales/fr.yml afin de créer la fonction localize. Elle fonctionne de la même manière que date mais renvoie le format français de la date.
Rien d’autre n’a vraiment changé, juste ces correctifs à apporter et le tour est joué. Si vous avez des suggestions, remarques ou soucis avec tout ça, faîtes-le moi savoir.
Plop !