Aller au contenu

Référence des redéfinitions

Vous pouvez redéfinir les composants intégrés à Starlight en spécifiant des chemins vers des composants de remplacement avec l’option de configuration components de Starlight. Cette page répertorie tous les composants disponibles qui peuvent être redéfinis et fournit des liens vers leurs implémentations par défaut sur GitHub.

Pour en savoir plus, consultez le guide des redéfinitions de composants.

Props des composants

Tous les composants peuvent accéder à un objet Astro.props standard qui contient des informations concernant la page courante.

Pour typer vos composants personnalisés, importez le type Props depuis Starlight :

src/components/Custom.astro
---
import type { Props } from '@astrojs/starlight/props';
const { hasSidebar } = Astro.props;
// ^ type: boolean
---

Cela vous permettra d’obtenir de l’autocomplétion et un typage lors de l’utilisation de Astro.props.

Props

Starlight passera les props suivantes à vos composants personnalisés.

dir

Type : 'ltr' | 'rtl'

Le sens d’écriture de la page.

lang

Type : string

L’étiquette d’identification BCP-47 pour la langue de la page, par exemple en, zh-CN ou pt-BR.

locale

Type : string | undefined

Le chemin de base utilisé pour servir une langue. undefined pour les slugs de la locale racine.

siteTitle

Type : string

Le titre du site pour la langue de cette page.

siteTitleHref

Type : string

La valeur de l’attribut href du titre du site, renvoyant à la page d’accueil, par exemple /. Pour les sites multilingues, cette valeur inclura la locale actuelle, par exemple /fr/ ou /zh-cn/.

slug

Type : string

Le slug de la page généré à partir du nom du fichier du contenu.

Cette propriété est dépréciée et sera supprimée dans une version future de Starlight. Migrez vers la nouvelle API Content Layer en utilisant le docsLoader de Starlight et utilisez la propriété id à la place.

id

Type : string

Le slug de cette page ou l’identifiant unique de cette page basé sur le nom du fichier du contenu si l’option legacy.collections est utilisée.

isFallback

Type : true | undefined

true si cette page n’est pas traduite dans la langue actuelle et utilise le contenu de la langue par défaut en tant que repli. Utilisé uniquement dans les sites multilingues.

entryMeta

Type : { dir: 'ltr' | 'rtl'; lang: string }

Métadonnées de la locale pour le contenu de la page. Peut être différent des valeurs de locale de premier niveau lorsque la page utilise un contenu de repli.

entry

L’entrée de la collection de contenu Astro pour la page courante. Inclut les valeurs du frontmatter pour la page courante dans entry.data.

entry: {
data: {
title: string;
description: string | undefined;
// etc.
}
}

Pour en savoir plus sur le format de cet objet, consultez la référence du type d’entrée de collection.

Type : SidebarEntry[]

Les entrées de la barre latérale de navigation du site pour cette page.

hasSidebar

Type : boolean

Indique si la barre latérale est affichée sur cette page.

pagination

Type : { prev?: Link; next?: Link }

Liens vers la page précédente et suivante dans la barre latérale si celle-ci est activée.

toc

Type : { minHeadingLevel: number; maxHeadingLevel: number; items: TocItem[] } | undefined

Table des matières de la page courante si celle-ci est activée.

headings

Type : { depth: number; slug: string; text: string }[]

Un tableau de toutes les en-têtes Markdown extraites de la page courante. Utilisez toc à la place si vous souhaitez construire un composant de table des matières qui respecte les options de configuration de Starlight.

lastUpdated

Type : Date | undefined

Un objet JavaScript de type Date représentant la date de dernière mise à jour de cette page si cette fonctionnalité est activée.

editUrl

Type : URL | undefined

Un objet URL de l’adresse où cette page peut être modifiée si cette fonctionnalité est activée.


Composants

Métadonnées

Ces composants sont utilisés dans l’élément <head> de chaque page. Ils ne doivent inclure que des éléments autorisés à l’intérieur de <head>.

Composant par défaut : Head.astro

Composant utilisé à l’intérieur de l’élément <head> de chaque page. Inclut des balises importantes comme <title> et <meta charset="utf-8">.

Redéfinissez ce composant en dernier recours. Préférez l’option head de la configuration de Starlight si possible.

ThemeProvider

Composant par défaut : ThemeProvider.astro

Composant utilisé à l’intérieur de l’élément <head> qui configure la prise en charge du thème sombre/clair. L’implémentation par défaut inclut un script en ligne et un élément <template> utilisé par le script situé dans <ThemeSelect />.


Accessibilité

Composant par défaut : SkipLink.astro

Composant utilisé comme premier élément à l’intérieur du <body> qui relie au contenu principal de la page pour des raisons d’accessibilité. L’implémentation par défaut est masquée jusqu’à ce qu’il reçoive le focus d’un utilisateur utilisant la navigation au clavier.


Mise en page

Ces composants sont responsables de la mise en page des composants de Starlight et de la gestion des vues pour différents points d’arrêt. Redéfinir ceux-ci implique une complexité significative. Lorsque cela est possible, préférez redéfinir un composant de plus bas niveau.

PageFrame

Composant par défaut : PageFrame.astro
Emplacements (slots) nommés : header, sidebar

Composant de mise en page contenant la plupart du contenu de la page. L’implémentation par défaut configure la mise en page de l’en-tête, de la barre latérale et du contenu principal et inclut des emplacements (slots) nommés header et sidebar en plus de l’emplacement par défaut pour le contenu principal. Il affiche également <MobileMenuToggle /> qui prend en charge l’affichage de la barre latérale de navigation sur petits écrans (mobiles).

MobileMenuToggle

Composant par défaut : MobileMenuToggle.astro

Composant utilisé à l’intérieur de <PageFrame> qui est responsable de l’affichage de la barre latérale de navigation sur petits écrans (mobiles).

TwoColumnContent

Composant par défaut : TwoColumnContent.astro
Emplacement (slot) nommé : right-sidebar

Composant de mise en page enveloppant le contenu principal de la page et la barre latérale de droite (table des matières). L’implémentation par défaut prend en charge le changement entre une mise en page à une seule colonne pour petits écrans et une mise en page à deux colonnes pour écrans plus larges.


En-tête

Ces composants affichent la barre de navigation supérieure de Starlight.

Composant par défaut : Header.astro

Composant d’en-tête affiché en haut de chaque page. L’implémentation par défaut affiche <SiteTitle />, <Search />, <SocialIcons />, <ThemeSelect /> et <LanguageSelect />.

SiteTitle

Composant par défaut : SiteTitle.astro

Composant utilisé au début de l’en-tête du site pour afficher le titre du site. L’implémentation par défaut inclut la logique pour afficher les logos définis dans la configuration de Starlight.

Composant par défaut : Search.astro

Composant utilisé pour afficher l’interface de recherche de Starlight. L’implémentation par défaut inclut le bouton dans l’en-tête et le code pour afficher une fenêtre modale de recherche lorsqu’il est cliqué et charger l’interface utilisateur de Pagefind.

Lorsque pagefind est désactivé, le composant de recherche par défaut ne sera pas affiché. Cependant, si vous redéfinissez Search, votre composant personnalisé sera toujours affiché même si l’option de configuration pagefind est false. Cela vous permet d’ajouter une interface de recherche alternative lorsque vous désactivez Pagefind.

SocialIcons

Composant par défaut : SocialIcons.astro

Composant utilisé dans l’en-tête du site qui inclut des liens avec des icônes vers différents médias sociaux. L’implémentation par défaut utilise l’option social de la configuration de Starlight pour afficher les icônes et les liens.

ThemeSelect

Composant par défaut : ThemeSelect.astro

Composant utilisé dans l’en-tête du site qui permet aux utilisateurs de sélectionner leur thème de couleur préféré.

LanguageSelect

Composant par défaut : LanguageSelect.astro

Component utilisé dans l’en-tête du site qui permet aux utilisateurs de changer de langue.


Barre latérale globale

La barre latérale globale de Starlight contient la navigation principale du site. Sur des écrans peu larges, elle est masquée derrière un menu déroulant.

Composant par défaut : Sidebar.astro

Composant utilisé avant le contenu de la page qui contient la navigation globale. L’implémentation par défaut est affichée comme une barre latérale sur des écrans suffisamment larges et à l’intérieur d’un menu déroulant sur des écrans plus petits (mobiles). Il utilise aussi <MobileMenuFooter /> pour afficher des éléments supplémentaires dans le menu mobile.

MobileMenuFooter

Composant par défaut : MobileMenuFooter.astro

Composant utilisé à la fin du menu déroulant mobile. L’implémentation par défaut affiche <ThemeSelect /> et <LanguageSelect />.


Barre latérale de page

La barre latérale de page de Starlight est responsable d’afficher une table des matières mettant en avant les titres de section de la page courante. Sur des écrans peu larges, elle est remplacée par un menu déroulant adhérant.

PageSidebar

Composant par défaut : PageSidebar.astro

Composant affiché avant le contenu de la page et contenant la table des matières. L’implémentation par défaut affiche <TableOfContents /> et <MobileTableOfContents />.

TableOfContents

Composant par défaut : TableOfContents.astro

Composant qui affiche la table des matières de la page courante sur des écrans suffisamment larges.

MobileTableOfContents

Composant par défaut : MobileTableOfContents.astro

Composant qui affiche la table des matières de la page courante sur des petits écrans (mobiles).


Contenu

Ces composants sont utilisés dans la colonne principale de contenu de la page.

Composant par défaut : Banner.astro

Composant représentant une bannière affichée en haut de chaque page. L’implémentation par défaut utilise la valeur du champ banner du frontmatter de la page pour décider de l’affichage ou non.

ContentPanel

Composant par défaut : ContentPanel.astro

Composant de mise en page utilisé pour envelopper les section de la colonne principale de contenu.

PageTitle

Composant par défaut : PageTitle.astro

Composant contenant l’élement <h1> de la page courante.

Les implémentations personnalisées doivent s’assurer qu’elles définissent id="_top" sur l’élément <h1> comme dans l’implémentation par défaut.

DraftContentNotice

Composant par défaut : DraftContentNotice.astro

Note affichée aux utilisateurs durant le développement lorsque la page actuelle est marquée comme une ébauche.

FallbackContentNotice

Composant par défaut : FallbackContentNotice.astro

Note affichée aux utilisateurs sur les pages où une traduction pour la langue courante n’est pas disponible. Utilisé uniquement sur les sites multilingues.

Hero

Composant par défaut : Hero.astro

Composant affiché en haut de la page lorsque le champ hero est défini dans le frontmatter. L’implémentation par défaut affiche un large titre, une accroche et des liens d’appel à l’action à côté d’une image facultative.

MarkdownContent

Composant par défaut : MarkdownContent.astro

Composant affiché autour du contenu principal de chaque page. L’implémentation par défaut définit les styles de base à appliquer au contenu Markdown.

Les styles de contenu Markdown sont également exposés dans @astrojs/starlight/style/markdown.css avec une portée limitée à la classe CSS .sl-markdown-content.


Pied de page

Ces composants sont affichés en bas de la colonne principale de contenu de la page.

Composant par défaut : Footer.astro

Composant pied de page affiché en bas de chaque page. L’implémentation par défaut affiche <LastUpdated />, <Pagination /> et <EditLink />.

LastUpdated

Composant par défaut : LastUpdated.astro

Composant utilisé dans le pied de page pour afficher la date de dernière mise à jour de la page.

Composant par défaut : EditLink.astro

Composant utilisé dans le pied de page pour afficher un lien vers l’emplacement où la page peut être modifiée.

Pagination

Composant par défaut : Pagination.astro

Composant utilisé dans le pied de page pour afficher des flèches de navigation entre les pages précédentes/suivantes.