Afficher les dates en français avec Jekyll
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
- Les plugins Liquid filters de Jekyll : http://jekyllrb.com/docs/plugins/#liquid-filters
- Documentation sur le langage Liquid : https://github.com/Shopify/liquid/wiki/Liquid-for-Designers
- Exemple de formatage de la date avec Liquid : http://alanwsmith.com/jekyll-liquid-date-formatting-examples
- Manuel du programmeur pour les formats de dates : http://man7.org/linux/man-pages/man3/strftime.3.html
⚠️ 👨🔧 - Nouveaux commentaires temporairement désactivés en raison du SPAM.
Commentaires
Yax
Exactement ce que je cherchais à faire ! Merci pour le code et la méthode avec GitHub Page