Hugo Generer Listes Etiquettes

Pour générer une liste d’étiquettes triée par ordre alphabétique et qui indique le nombre de posts dans lesquels chaque étiquette apparaît dans votre site Hugo, vous pouvez suivre les étapes suivantes :

1. Créer un fichier de taxonomie personnalisé :

Par défaut, Hugo supporte les taxonomies pour les étiquettes (tags) et catégories (categories). Pour s’assurer que vos étiquettes sont bien prises en compte, vous pouvez vérifier ou configurer les taxonomies dans votre fichier config.toml (ou config.yaml).

Dans config.toml :

[taxonomies]
  tag = "tags"
  category = "categories"

2. Créer un template pour afficher les étiquettes :

Vous pouvez créer un fichier de template personnalisé pour lister les étiquettes. Placez ce fichier dans le répertoire layouts/_default ou layouts/tags selon votre organisation.

Par exemple, créez un fichier layouts/tags/list.html :

{{ define "main" }}
    <h1>Liste des étiquettes</h1>
    <ul>
        {{ $tags := .Site.Taxonomies.tags }}
        {{ range $name, $items := sort $tags }}
            <li>
                <a href="{{ (index $items 0).Page.Permalink }}">{{ $name }}</a> ({{ len $items }} posts)
            </li>
        {{ end }}
    </ul>
{{ end }}

Dans ce code :

  • {{ $tags := .Site.Taxonomies.tags }} : Récupère toutes les étiquettes disponibles dans le site.
  • {{ range $name, $items := sort $tags }} : Itère sur les étiquettes en les triant par ordre alphabétique.
  • {{ len $items }} : Compte le nombre de posts associés à chaque étiquette.

3. Ajouter un lien vers la liste des étiquettes :

Vous pouvez créer un lien dans votre menu ou une section spécifique de votre site pour accéder à la liste des étiquettes. Ajoutez, par exemple, un lien dans votre fichier config.toml :

[[menu.main]]
  name = "Étiquettes"
  url = "/tags/"
  weight = 2

4. Générer le site :

Enfin, vous pouvez générer votre site avec la commande hugo et vérifier que la page des étiquettes est bien générée avec la liste triée alphabétiquement ainsi que le nombre de posts par étiquette.

Ces étapes vous permettront de créer une liste d’étiquettes dynamique et facilement accessible, avec une indication du nombre de posts associés à chaque étiquette.