Une installation Jekyll de base ne supporte pas la localisation de la date, c’est à dire que Jekyll n’offre pas la possibilité d’afficher une date au format français.

En effet, par défaut Jekyll va afficher la date des articles avec le format suivant :

Oct 19, 2017

Et nous souhaiterions par exemple obtenir son équivalent en français soit :

19 oct 2017

J’ai trouvé 3 solutions pour résoudre ce soucis, la dernière étant la seule compatible avec les pages GitHub. Les voici :

Utilisation d’un plugin Jekyll

Des plugins Jekyll permettent de créer un site multilingue. Ces plugins ne sont pas disponibles avec les pages GitHub (voir la liste des plugins supportés ici) et ils me semblent trop complets pour mon besoin. Je n’ai donc pas testé cette solution.

Les 3 plugins que j’ai trouvé 3 pour créer un site multilingue sont les suivants :

Développement d’un plugin Jekyll

Un solution plus simple consiste à implémenter un plugin Jekyll de type « Liquid filter » qui utilise le format, les jours et les mois français de la date. Celui-ci est à intégrer dans l’arborescence du site Jekyll, dans le répertoire « _plugins ».

Voici un exemple de code disponible sur mon GitHub (et sans doute améliorable). Ce plugin exporte une fonction « date_to_french » réutilisable dans le code Liquid des pages (tel que celles dans le répertoire _layout).

L’utilisation de ce plugin n’est donc pas automatique. Il faut modifier les pages qui appellent le filtre « date ». La modification de la page home.html du thème Minima ressemble à ceci :

-{% assign date_format = site.minima.date_format | default: "%b %-d, %Y" %}
-<span class="post-meta">{{ post.date | date: date_format }}</span>
+<span class="post-meta">{{ post.date | date_to_french }}</span>

GitHub génère les sites web avec l’option --safe de Jekyll, ce qui a pour conséquence de désactiver les plugins personnalisés. Cette solution n’est donc pas compatible avec la génération de pages de GitHub.

Sans plugin

Si cette solution est la moins élégante, elle a le mérite de fonctionner avec la génération de pages de GitHub. Mon idée a été de remplacer le jour et le mois de la date générée par le filtre « date » de Liquid. On conserve ainsi le choix du format de date spécifié dans le fichier _config.yml de Jekyll (variable minima.date_format dans le cas du thème Minima).

J’ai placé le code Liquid dans un fichier _include/date-french.html ensuite inclus par les pages qui nécessite l’affichage d’une date. La modification de la page home.html du thème Minima ressemble à ceci :

 {% assign date_format = site.minima.date_format | default: "%b %-d, %Y" %}
-<span class="post-meta">{{ post.date | date: date_format }}</span>
+{% assign date_english = post.date | date: date_format %}
+{% include date-french.html %}
+<span class="post-meta">{{ date_french }}</span>

Ressources