Référence du frontmatter : tous les champs reconnus par ce thème
Référence complète du schéma de frontmatter pour les articles et les pages — champs requis et optionnels, valeurs par défaut, règles de validation et rôle de chacun.
Ce thème utilise les Content Collections d’Astro avec un schéma
Zod strict. Chaque article et chaque page sont
typés à la compilation : un champ requis manquant ou une faute de
frappe dans pubDate fait échouer le build au lieu de casser
silencieusement le site.
Le schéma complet vit dans src/content.config.ts. Voici à quoi sert chaque champ, quand l’utiliser, et sa valeur par défaut.
| Champ | Type | Notes |
|---|---|---|
title | string | 1–140 caractères. Utilisé comme <title>, OG, H1. |
description | string | 1–280 caractères. Méta description, OG, RSS. |
pubDate | date | Coercé depuis toute chaîne ISO valide. |
Pour les pages (src/content/pages/**), pubDate est optionnel —
les pages ne sont ni paginées ni archivées.
updatedDate: 2026-05-12À renseigner à chaque modification significative. Cela alimente la
ligne « Mis à jour » de l’en-tête de l’article, la balise RSS
<updated>, le meta OG article:modified_time et l’entrée du sitemap.
tags: [typescript, astro, accessibilite]categories: [Tutoriels]Les deux ont pour défaut []. Les tags alimentent l’index /fr/tags/...,
les catégories alimentent /fr/categories/.... Aucune casse n’est
imposée — choisissez une convention et tenez-la.
draft: trueDéfaut false. Quand vrai, l’article est inclus en mode dev mais
exclu des builds de production, du sitemap et du flux RSS.
heroImage: ../../../assets/images/posts/featured-images-and-media/coastline.jpgheroImageAlt: 'Une longue exposition de vagues sur une côte rocheuse'Trois formes sont acceptées :
- Un chemin relatif au fichier markdown vers
src/assets/images/posts/<post-identifier>/— résolu via le helperimage()d’Astro, entièrement optimisé (WebP +srcsetresponsive). Recommandé. - Un chemin absolu sous
/public/...— servi tel quel, sans optimisation. - Une URL externe
https://...— optimisée au build si l’hôte est autorisé dansimage.remotePatterns(voirastro.config.mjs).
L’image est utilisée comme vignette de carte sur les listings et
comme bannière sur la page d’article. heroImageAlt devient
l’attribut alt — remplissez-le toujours.
L’article compagnon Images à la une & médias entre dans le détail de l’auteur d’images.
showFeaturedImage: falseOverride par article de SITE.showFeaturedImages
(src/config.ts). Mettre false pour supprimer la
bannière sur un article malgré la valeur par défaut.
Pour le comportement de hauteur des cartes de listing (fixe vs
dynamique), utilisez SITE.dynamicPostCardHeight dans
src/config.ts comme défaut global, ou
dynamicPostCardHeight dans le frontmatter pour un override par
article.
dynamicPostCardHeight: trueOverride optionnel par article de SITE.dynamicPostCardHeight. Cela
agit uniquement sur le comportement de la carte de l’article dans les
listings horizontaux :
true: la carte peut s’étendre (hauteur dynamique).false: la carte garde une hauteur fixe style Chirpy.- omis : retour au réglage global
SITE.dynamicPostCardHeight.
canonicalURL: https://exemple.com/url/canonique/Override optionnel pour <link rel="canonical">. Utile lorsque
l’article est republié et existe ailleurs en version officielle.
comments: falseBascule par article pour Giscus. Si omis, suit le réglage global
GISCUS.enabled. Mettre explicitement false pour désactiver les
commentaires sur un article (par exemple cette page de référence).
toc: falseDéfaut true. La table des matières flottante de droite est construite
à partir des H2–H4 avec scroll-spy. Certains articles (un essai photo,
une annonce courte) se lisent mieux sans — mettez toc: false.
pinned: trueLes articles épinglés se classent toujours en tête des listings et de la page d’accueil. À utiliser avec parcimonie.
math: trueActive KaTeX sur l’article. La feuille de style (katex.min.css,
~29 ko) n’est chargée que sur les pages qui activent ce drapeau.
Voir l’article sur les mathématiques.
lang: frOverride de locale. Le thème infère normalement la locale depuis
le chemin du fichier (posts/en/... → en, posts/fr/... → fr),
donc rarement utile.
translationKey: welcomeLe pont entre les versions EN et FR du même article. Deux articles
qui partagent la même translationKey sont considérés comme
traductions l’un de l’autre ; le sélecteur de langue s’en sert pour
emmener le lecteur sur la version équivalente plutôt que vers la
page d’accueil de la locale. Si omis, le thème retombe sur le slug
du fichier. L’article sur l’i18n
détaille tout cela.
Les pages (src/content/pages/**) acceptent tout ce que les articles
acceptent (avec pubDate optionnel) plus :
showInNav: trueRéservé pour usage futur ; la navigation est actuellement pilotée par
le tableau NAV de src/config.ts.
---title: Un exemple completdescription: Démontre tous les champs en un seul fichier.pubDate: 2026-05-01updatedDate: 2026-05-03tags: [exemple, reference]categories: [Référence]draft: falseheroImage: ../../../assets/images/posts/featured-images-and-media/coastline.jpgheroImageAlt: Une longue exposition d'une côte rocheuseshowFeaturedImage: truecanonicalURL: https://exemple.com/exemple/comments: truetoc: truepinned: falsemath: falsetranslationKey: exemple---| Erreur | Signification |
|---|---|
pubDate: Required | pubDate oublié (ou mal orthographié). |
description: Too long (max 280) | Description supérieure à 280 caractères. |
heroImage: Invalid URL | (URL externe qui échoue au parse Zod.) |
Cannot find module '...' | Chemin d’import MDX incorrect — vérifier le chemin relatif vers src/components/. |
Les commentaires sont volontairement désactivés sur cet article
via comments: false — c’est une référence, pas une discussion.