diff --git a/content/blog/les-dates-avec-hugo.md b/content/blog/les-dates-avec-hugo.md index 4193620..c8f1357 100644 --- a/content/blog/les-dates-avec-hugo.md +++ b/content/blog/les-dates-avec-hugo.md @@ -8,7 +8,8 @@ tags: ["hugo", "dates", "configuration"] slug: les-dates-avec-hugo --- -*Mis à jour à la fin du billet* +*[Mis à jour à la fin du billet](#mise-à-jour). +[Une deuxième fois](#une-mise-à-jour-supplémentaire).* Ces derniers jours, je me suis un peu cassé la tête avec la manière dont [*hugo*](https://gohugo.io/) conçoit et traite les dates. Ce que je cherchais à @@ -117,3 +118,43 @@ Aussi, j'ai rajouté un test dans le *template* : D'abord, on vérifie que la variable `lastmod` est bien renseignée, puis que sa date est plus récente que `publishdate`, avant de l'afficher. Voilà, j'espère que désormais je vais obtenir le comportement que je souhaite. + +## Une mise à jour supplémentaire + +> « Voilà, j'espère que désormais je vais obtenir le comportement que je +> souhaite. » + +Hé bien non. Souvent, la `lastmod` est affichée, alors qu'elle est du même jour +que la `publishdate`, et en fait, c'est logique. Il se trouve que je renseigne +la `publishdate` manuellement, parce que je veux qu'elle soit différente de la +date de création du fichier (le résultat de la commande `hugo new`) et qu'elle +ne soit pas modifiée par les dates des commits qui viendraient après, puisque +ces modifications sont des mises à jour, pas un changement de la date de +publication. Or, je ne m'amuse pas à créer une date de publication à la seconde +près, une date du type `2020-05-22` me suffit. + +Par contre, pour la `lastmod`, la date vient de `git`, et là c'est précis, à la +seconde près. Ce qui a pour conséquence qu'une comparaison d'une date de +publication et et la date du dernier commit qui tombent le même jour, donnera +toujours la `lastmod` comme plus grande que la `publishdate`. Mon gabarit va +dont l'afficher. + +La solution, évidente pour des gens dont c'est le métier, j'imagine, est de +traiter ces dates pour pouvoir les comparer de manière sensée : + +``` +{{ $LastmodFormatted := dateFormat "2006-01-02" (.Lastmod) }} +{{ $PublishdateFormatted := dateFormat "2006-01-02" (.PublishDate) }} +``` + +On compare ces dates formatées et on affiche la dernière modification si elle +est plus récente que le jour de publication : + +``` +{{ if (and (isset .Params "lastmod") (gt $LastmodFormatted $PublishdateFormatted)) }} +
  • Dernière mise à jour : {{ .Lastmod.Format "2006-01-02" }}
  • +{{ end }} +``` + +Et si on fait des mises à jour le même jour, ça ne sera pas affiché, mais +peut-être bien que c'est sensé, au fond. diff --git a/themes/portfoliGor b/themes/portfoliGor index c6ea77b..7b43ee6 160000 --- a/themes/portfoliGor +++ b/themes/portfoliGor @@ -1 +1 @@ -Subproject commit c6ea77b4293986ac430d8ce35513207126478b2e +Subproject commit 7b43ee60e5e64c8621c3f89e07290e24f0b9ea63