Référence du frontmatter
Vous pouvez personnaliser des pages Markdown et MDX individuelles dans Starlight en définissant des valeurs dans leur frontmatter. Par exemple, une page normale peut définir les champs title
et description
:
Champs du frontmatter
title
(obligatoire)
Type : string
Vous devez fournir un titre pour chaque page. Il sera affiché en haut de la page, dans les onglets du navigateur et dans les métadonnées de la page.
description
Type : string
La description de la page est utilisée pour les métadonnées de la page et sera reprise par les moteurs de recherche et dans les aperçus des médias sociaux.
slug
type: string
Remplace le slug de la page. Consultez « Définition d’un slug personnalisé » dans la documentation d’Astro pour plus de détails.
editUrl
Type : string | boolean
Remplace la configuration globale editLink
. Mettez false
pour désactiver le lien “Modifier cette page” pour une page spécifique ou pour fournir une URL alternative où le contenu de cette page est éditable.
head
Type : HeadConfig[]
Vous pouvez ajouter des balises supplémentaires au champ <head>
de votre page en utilisant le champ head
frontmatter. Cela signifie que vous pouvez ajouter des styles personnalisés, des métadonnées ou d’autres balises à une seule page. Similaire à l’option globale head
.
tableOfContents
Type : false | { minHeadingLevel?: number; maxHeadingLevel?: number; }
Remplace la configuration globale tableOfContents
.
Personnalisez les niveaux d’en-tête à inclure ou mettez false
pour cacher la table des matières sur cette page.
template
Type : 'doc' | 'splash'
Par défaut : 'doc'
Définit le modèle de mise en page pour cette page.
Les pages utilisent la mise en page 'doc'
’ par défaut.
La valeur 'splash''
permet d’utiliser une mise en page plus large, sans barres latérales, conçue pour les pages d’atterrissage.
hero
Type : HeroConfig
Ajoute un composant héros en haut de la page. Fonctionne bien avec template : splash
.
Par exemple, cette configuration montre quelques options communes, y compris le chargement d’une image depuis votre dépôt.
Vous pouvez afficher différentes versions de l’image de premier plan en mode clair et sombre.
HeroConfig
banner
Type : { content: string }
Montrera une bannière d’annonce en haut de cette page.
La valeur content
peut inclure du HTML pour les liens ou d’autres contenus.
Par exemple, cette page affiche une bannière comprenant un lien vers example.com
.
lastUpdated
Type : Date | boolean
Remplace la configuration globale lastUpdated
. Si une date est spécifiée, elle doit être un horodatage YAML valide et remplacera la date stockée dans l’historique Git pour cette page.
prev
Type : boolean | string | { link?: string; label?: string }
Remplace la configuration globale pagination
. Si un string est spécifié, le texte du lien généré sera remplacé et si un objet est spécifié, le lien et le texte seront remplacés.
next
Type : boolean | string | { link?: string; label?: string }
La même chose que prev
mais pour le lien de la page suivante.
pagefind
Type : boolean
Par défaut : true
Définit si cette page doit être incluse dans l’index de recherche de Pagefind. Définissez la valeur à false
pour exclure une page des résultats de recherche :
draft
Type : boolean
Par défaut : false
Définit si cette page doit être considérée comme une ébauche et ne pas être incluse dans les déploiements en production et les groupes de liens générés automatiquement. Définissez la valeur à true
pour marquer une page comme une ébauche et la rendre visible uniquement pendant le développement.
sidebar
Type : SidebarConfig
Contrôler l’affichage de cette page dans la barre latérale, lors de l’utilisation d’un groupe de liens généré automatiquement.
SidebarConfig
label
Type : string
Par défaut : title
de la page
Définir l’étiquette de cette page dans la barre latérale lorsqu’elle est affichée dans un groupe de liens généré automatiquement.
order
Type : number
Contrôler l’ordre de cette page lors du tri d’un groupe de liens généré automatiquement. Les numéros inférieurs sont affichés plus haut dans le groupe de liens.
hidden
Type : boolean
Par défaut : false
Empêche cette page d’être incluse dans un groupe de liens généré automatiquement.
badge
Type : string | BadgeConfig
Ajoute un badge à la page dans la barre latérale lorsqu’elle est affichée dans un groupe de liens généré automatiquement.
Lors de l’utilisation d’une chaîne de caractères, le badge sera affiché avec une couleur d’accentuation par défaut.
Passez éventuellement un objet BadgeConfig
avec les propriétés text
, variant
, et class
pour personnaliser le badge.
attrs
Type : Record<string, string | number | boolean | undefined>
Attributs HTML à ajouter au lien de la page dans la barre latérale lorsqu’il est affiché dans un groupe de liens généré automatiquement.
Personnaliser le schéma du frontmatter
Le schéma du frontmatter de la collection de contenus docs
de Starlight est configuré dans src/content/config.ts
en utilisant l’utilitaire docsSchema()
:
Consultez « Définir un schéma de collection de contenus » dans la documentation d’Astro pour en savoir plus sur les schémas de collection de contenus.
docsSchema()
accepte les options suivantes :
extend
Type : Schéma Zod ou fonction qui retourne un schéma Zod
Par défaut : z.object({})
Étendez le schéma de Starlight avec des champs supplémentaires en définissant extend
dans les options de docsSchema()
.
La valeur doit être un schéma Zod.
Dans l’exemple suivant, nous définissons un type plus strict pour description
pour le rendre obligatoire et ajouter un nouveau champ category
facultatif :
Pour tirer parti de l’utilitaire image()
d’Astro, utilisez une fonction qui retourne votre extension de schéma :