Un composant Docusaurus qui prévient le lecteur que l'article a plus d'un an
Affiche une bannière d'avertissement quand le contenu de la page a plus d'un an
Traduction automatique
Cet article fait partie de la série Créer des composants Docusaurus :
- Modifier la façon dont Docusaurus génère les balises img
- Surcharger la génération des balises img avec Docusaurus
- Organisez votre contenu Docusaurus avec un composant Series personnalisé
- Ajouter un bouton « retour en haut » dans les articles Docusaurus
- Créer un plugin de recherche/remplacement pour Docusaurus
- Un composant pour afficher des snippets de code dans un blog Docusaurus
- Un composant Docusaurus qui prévient le lecteur que l'article a plus d'un an
- Afficher le changelog de votre article
- Injecter de l'ASCII art dans toutes les pages HTML générées par Docusaurus
- Best Practice - Personnaliser le flux RSS de Docusaurus pour un contenu complet et des images
- Quelques vérifications sur les images de votre site Docusaurus
- Gestion des tags dans Docusaurus
- Automatiser les résumés TL;DR avec Gemini AI
- Le composant ProjectSetup - Une façon standardisée de partager des structures de projet
- Comment signaler un contenu assisté par IA dans un blog Docusaurus
- Donnez vie à vos tutoriels CLI avec un terminal machine à écrire
- Espiègleries de suricate : semer des easter eggs partout sur mon blog
- Tooltips de code assistés par l'IA dans Docusaurus — Explique-moi comme à un enfant de cinq ans
- Ajouter des réactions de lecteurs à votre blog Docusaurus
- Votre blog est illisible pour une IA. Voici la solution.
- Secouez votre téléphone, surprenez le suricate
- Ajouter un bouton « Copy as Markdown » à votre blog Docusaurus
- Ask My Blog : transformer 259 articles en 2 160 questions cherchables
- La troisième porte : une bulle de chat flottante, et la fonctionnalité que personne ne trouvait
- Dessiner une carte de mon propre blog
- Laissez vos lecteurs signaler les problèmes — un widget de feedback multi-types pour Docusaurus
Journal des modifications
review_date front matter support — a recent review date swaps the warning for a green "still accurate" banner; if the review date is itself over a year old, the standard warning reappearslast_update field in the front matter) before the creation date (date field)
Cet article montre comment créer un composant Docusaurus qui prévient le lecteur quand un billet de blog a plus d'un an. Il s'agit de construire un composant React et de « swizzler » le template BlogPostPage pour y injecter cet avis. Le composant détermine l'âge d'un article en regardant son champ last_update ou date dans le front matter.
Dans cet article, voyons comment afficher un petit cadre « Attention : cet article a au moins un an, ce qui, en années tech, relève quasiment de la préhistoire. »
Nous allons créer un composant React pour Docusaurus et l'injecter dans la page de nos billets de blog : une fois en place, tout fonctionnera comme par magie.
Le voici en action, sur un vieux billet de ce blog :

C'est parti.
Créer le composant
Vous devez créer deux nouveaux fichiers dans votre propre site Docusaurus :
Besoin d'aide ? Cliquez sur le bouton « Aide » ci-dessus pour les instructions de mise en place.
Surcharger le template BlogPostPage
Côté Docusaurus, nous devons swizzler la page responsable du rendu d'un billet. Cette page s'appelle BlogPostPage.
Pour cela, ouvrez une console et lancez yarn swizzle @docusaurus/theme-classic BlogPostItem/Content.
Dès maintenant, vous avez un nouveau fichier sur votre disque : src/theme/BlogPostItem/Content/index.js
Vous avez peut-être déjà ce fichier
Afficher le changelog de votre article swizzle exactement le même fichier. Si vous avez suivi cet article, ajoutez simplement le nouveau composant à côté de l'existant au lieu de swizzler à nouveau.
Ci-dessous, le contenu original du fichier (Docusaurus v3.8.1) :
import React from 'react';import clsx from 'clsx';import {blogPostContainerID} from '@docusaurus/utils-common';import {useBlogPost} from '@docusaurus/plugin-content-blog/client';import MDXContent from '@theme/MDXContent';export default function BlogPostItemContent({children, className}) { const {isBlogPostPage} = useBlogPost(); return ( <div // This ID is used for the feed generation to locate the main content id={isBlogPostPage ? blogPostContainerID : undefined} className={clsx('markdown', className)}> <MDXContent>{children}</MDXContent> </div> );}Ce composant React encapsule le contenu d'un article de blog en le rendant avec les styles markdown appropriés. Il utilise un hook personnalisé pour déterminer si on affiche la page complète d'un article, et dans ce cas, ajoute un ID spécifique qui sert à la génération de flux de contenu.
Pour injecter notre nouveau composant OldPostNotice, éditez le fichier comme ceci (voir les lignes surlignées) :
import React from 'react';import clsx from 'clsx';import {blogPostContainerID} from '@docusaurus/utils-common';import {useBlogPost} from '@docusaurus/plugin-content-blog/client';import MDXContent from '@theme/MDXContent';// highlight-next-lineimport OldPostNotice from "@site/src/components/Blog/OldPostNotice";
export default function BlogPostItemContent({children, className}) { const {isBlogPostPage} = useBlogPost(); return ( // highlight-next-line <> // highlight-next-line <OldPostNotice /> <div // This ID is used for the feed generation to locate the main content id={isBlogPostPage ? blogPostContainerID : undefined} className={clsx('markdown', className)}> <MDXContent>{children}</MDXContent> </div> // highlight-next-line </> );}Ce composant React affiche le contenu d'un article de blog en combinant un avis pour les anciens articles avec le contenu MDX rendu. Il applique un identifiant spécifique et des classes CSS conditionnellement selon que l'on affiche la page complète du blog ou un aperçu.
Sauvez le fichier et rafraîchissez votre blog. Vous devriez obtenir la même bannière que celle montrée en début d'article.
Information
Le composant utilise le champ date que vous devez mentionner dans votre front matter YAML.
Donc, dans chacun de vos billets .md, vous devez avoir un bloc YAML comme celui-ci :
---
title: Your blog post article
authors: [you]
date: 2025-09-30
---
Marquer un billet relu
Si vous revenez sur un vieil article et confirmez que le contenu est toujours exact, vous pouvez ajouter un champ review_date dans le front matter :
---
date: 2023-05-10
review_date: 2026-07-30
---
Quand review_date est présent et date de moins d'un an, le composant remplace l'avertissement orange par une bannière verte de confirmation :
✅ Cet article a plus d'un an mais a été relu le 30 juillet 2026 — le contenu est toujours exact.
Si review_date a lui-même plus d'un an, l'avertissement standard réapparaît — parce qu'une relecture périmée ne vaut pas mieux que pas de relecture du tout.
Position de l'avertissement
L'avis sera placé avant le contenu du billet. Sur mon blog, j'ai manipulé le code ci-dessous pour extraire la toute première image (c'est-à-dire la bannière) afin de l'afficher en premier, puis l'avis, puis le reste de l'article. Mais c'est sans doute trop complexe pour l'instant. Nous verrons ça dans un prochain article.
L'image de bannière est traitée différemment des autres pour exactement la même raison que dans Modifier la façon dont Docusaurus génère les balises img : la première image d'un billet est spéciale et doit être laissée telle quelle.
<div
// This ID is used for the feed generation to locate the main content
id={isBlogPostPage ? blogPostContainerID : undefined}
className={clsx('markdown', className)}>
<MDXContent>{children}</MDXContent>
</div>
Cet article fait partie de la série Créer des composants Docusaurus :
- Modifier la façon dont Docusaurus génère les balises img
- Surcharger la génération des balises img avec Docusaurus
- Organisez votre contenu Docusaurus avec un composant Series personnalisé
- Ajouter un bouton « retour en haut » dans les articles Docusaurus
- Créer un plugin de recherche/remplacement pour Docusaurus
- Un composant pour afficher des snippets de code dans un blog Docusaurus
- Un composant Docusaurus qui prévient le lecteur que l'article a plus d'un an
- Afficher le changelog de votre article
- Injecter de l'ASCII art dans toutes les pages HTML générées par Docusaurus
- Best Practice - Personnaliser le flux RSS de Docusaurus pour un contenu complet et des images
- Quelques vérifications sur les images de votre site Docusaurus
- Gestion des tags dans Docusaurus
- Automatiser les résumés TL;DR avec Gemini AI
- Le composant ProjectSetup - Une façon standardisée de partager des structures de projet
- Comment signaler un contenu assisté par IA dans un blog Docusaurus
- Donnez vie à vos tutoriels CLI avec un terminal machine à écrire
- Espiègleries de suricate : semer des easter eggs partout sur mon blog
- Tooltips de code assistés par l'IA dans Docusaurus — Explique-moi comme à un enfant de cinq ans
- Ajouter des réactions de lecteurs à votre blog Docusaurus
- Votre blog est illisible pour une IA. Voici la solution.
- Secouez votre téléphone, surprenez le suricate
- Ajouter un bouton « Copy as Markdown » à votre blog Docusaurus
- Ask My Blog : transformer 259 articles en 2 160 questions cherchables
- La troisième porte : une bulle de chat flottante, et la fonctionnalité que personne ne trouvait
- Dessiner une carte de mon propre blog
- Laissez vos lecteurs signaler les problèmes — un widget de feedback multi-types pour Docusaurus
Chargement des commentaires…





