☕ 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 Jekyll
Lorsqu’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 !