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
parent
5062677fac
commit
ac7c1bee67
|
@ -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 : {{ .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
|
Loading…
Reference in New Issue