Aller au contenu principal

Gestion des tags dans Docusaurus

Automatisez la gestion des tags Docusaurus avec ce script Python. Nettoyez les doublons, corrigez la casse et fusionnez les tags en toute sécurité sur des centaines de fichiers Markdown via Docker.

· 4 minutes de lecture
Voir la source
Christophe
Amoureux de Markdown, WSL et Docker ~ Curieux insatiable.
Cet article existe aussi en anglais — lire la version originale.

Traduction automatique

Cette traduction a été produite par une IA. Elle peut contenir des contresens ou des maladresses, en particulier sur les termes techniques. En cas de doute, consultez l'article de référence en anglais — c'est lui qui fait foi.
Cet article fait partie de la série Créer des composants Docusaurus :

Gestion des tags dans Docusaurus

⚡
TL;DR

Cet article présente un script Python maison conçu pour automatiser le nettoyage et la gestion des tags incohérents d'un blog Docusaurus. L'outil tourne dans un container Docker pour lister, renommer et supprimer des tags, tout en proposant des suggestions intelligentes pour fusionner les doublons ou corriger les variations de casse. Il aborde aussi les options de configuration natives de Docusaurus pour imposer des règles d'utilisation des tags plus strictes à l'avenir.

Plus de 200 articles plus tard, mon site Docusaurus a accumulé un joli chaos de tags. Trop de tags similaires, des majuscules incohérentes, du singulier contre du pluriel... Des tags avec un ou deux articles seulement. Et ainsi de suite.

Dans cet article, je partage un script Python que j'ai écrit pour automatiser la gestion des tags : en supprimer certains, en fusionner d'autres et nettoyer les incohérences.

C'est quasi impossible à faire à la main quand vous avez des centaines de fichiers Markdown. En plus, le faire manuellement risque de casser le formatage du frontmatter YAML.

Voir les suggestions​

Une seule commande liste tous les tags et signale les doublons probables :

>user@machine: ~/yourproject

Liste des tags

La solution : un gestionnaire de tags intelligent​

Je voulais un outil capable de faire trois choses :

  1. Lister tous les tags par fréquence.
  2. Suggérer des optimisations (trouver les doublons ou les variations singulier/pluriel).
  3. Renommer ou supprimer des tags sans rien casser.

Suggestions intelligentes​

La partie la plus sympa du script, ce sont les « suggestions d'optimisation ». Il compare chaque tag à tous les autres pour repérer les doublons potentiels.

Il cherche :

  • Les variations de casse : GitHub contre github.
  • Les pluriels : snippet contre snippets.
  • Les sous-chaînes : visual studio code contre vscode.

Ça m'aide à repérer le bazar dont je ne soupçonnais même pas l'existence.

Comment l'exécuter (Docker d'abord)​

Comme toujours, je ne veux pas polluer ma machine hôte avec des dépendances Python. Je lance ce script avec Docker — exactement comme le vérificateur d'images décrit dans Quelques vérifications sur les images de votre site Docusaurus.

J'ai une cible Makefile prête, mais en gros, elle exécute une commande comme celle-ci :

>user@machine: ~/yourproject

Mais bon, cette commande est franchement difficile à retenir, donc j'utilise plutôt une cible Makefile :

Le script​

Voici le script Python complet. Il utilise argparse pour gérer les arguments en ligne de commande et python-frontmatter pour analyser les fichiers.

D'autres exemples​

Renommer un tag :

Si, en parcourant la liste des tags, je vois que j'ai un tag snippets et un tag snippet, je vais les fusionner comme ceci :

>user@machine: ~/yourproject

Supprimer un tag :

Je peux aussi constater qu'un tag précis n'apporte rien ; pour le supprimer, je lance quelque chose comme ça :

>user@machine: ~/yourproject
Bonus - Le fichier tags.yml

Nativement, Docusaurus vous permet de créer un fichier spécial appelé blog/tags.yml.

Voici celui que j'utilise :

Avec un tel fichier, vous pouvez ensuite configurer votre fichier docusaurus.config.js et mettre l'attribut onInlineTags à warn ou throw.

Besoin de plus d'infos ? Lisez la documentation officielle Tags File.

Conclusion​

Garder un blog organisé est un travail permanent. Avec ce script, je peux auditer mes tags rapidement et m'assurer que Docusaurus ne devienne pas docusaurus ou DocuSaurus avec le temps.

N'hésitez pas à récupérer le script et à l'adapter à votre propre générateur de site statique !


Cet article fait partie de la série Créer des composants Docusaurus :
🦋 Rejoignez la conversation sur BlueskyUn compte Bluesky gratuit est nécessaire pour aimer, repartager ou commenter. Ce bloc interroge l'API publique de Bluesky directement depuis votre navigateur (sans cookie, sans connexion) — votre adresse IP parvient donc aux serveurs de Bluesky dès que cette section se charge.

Chargement des commentaires…

Cet article vous a-t-il été utile ?
Avez-vous suivi les étapes de cet article ?