pubnum: mise à jour du billet sur les dates

il y avait un problème avec l'affichage des dates, lorsque la date du
dernier commit correspond à la date de publication, elle ne devrait pas
être affichée, c'était un problème de comparaison de pommes avec une
queue avec une pomme sans queue, on peut jamais savoir si elles sont
identiques, c'est évident.

j'ai donc mis à jour le billet sur les dates dans hugo. ce commit
emporte aussi deux commit du submodule du theme, avec la correction de
cette histoire de date, la mise en forme minimale des citations et la
correction d'une mauvaise propriété CSS, un détail.

Co-Authored-by: Igor Milhit <igor@milhit.ch>
web-fediverse-moi
iGor milhit 2020-05-22 13:21:06 +02:00
parent 5062677fac
commit ac7c1bee67
Signed by: igor
GPG Key ID: 692D97C3D0228A99
2 changed files with 43 additions and 2 deletions

View File

@ -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)) }}
<li>Dernière mise à jour&#x202F;: {{ .Lastmod.Format "2006-01-02" }}</li>
{{ 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.

@ -1 +1 @@
Subproject commit c6ea77b4293986ac430d8ce35513207126478b2e
Subproject commit 7b43ee60e5e64c8621c3f89e07290e24f0b9ea63