Riferimento Sostituzioni
Puoi sovrascrivere i componenti integrati di Starlight fornendo percorsi ai componenti sostitutivi nell’opzione di configurazione components
di Starlight.
Questa pagina elenca tutti i componenti disponibili per l’override e si collega alle loro implementazioni predefinite su GitHub.
Scopri di più nella Guida alla sostituzione dei componenti.
Proprietà dei componenti
Sezione intitolata “Proprietà dei componenti”Tutti i componenti possono accedere a un oggetto standard Astro.props
che contiene informazioni sulla pagina corrente.
Per aggiungere i tipi di dato ai tuoi componenti personalizzati, importa il tipo Props
da Starlight:
---import type { Props } from '@astrojs/starlight/props';
const { hasSidebar } = Astro.props;// ^ tipo: boolean---
Questo ti darà il completamento automatico e i tipi di dato quando accedi a Astro.props
.
Proprietà
Sezione intitolata “Proprietà”Starlight trasmetterà le seguenti proprietà ai tuoi componenti personalizzati.
tipo: 'ltr' | 'rtl'
Direzione di scrittura della pagina.
tipo: string
Tag di lingua BCP-47 per le impostazioni internazionali di questa pagina, ad es. en
, zh-CN
o pt-BR
.
tipo: string | undefined
Il percorso di base in cui viene servita una lingua. undefined
per gli slug della lingua di base.
siteTitle
Sezione intitolata “siteTitle”tipo: string
Il titolo del sito per la lingua di questa pagina.
siteTitleHref
Sezione intitolata “siteTitleHref”tipo: string
Il valore per l’attributo href
del titolo del sito, che collega alla homepage, ad esempio /
.
Per i siti multilingua, questo includerà la lingua corrente, ad esempio /en/
o /zh-cn/
.
tipo: string
Lo slug per questa pagina generato dal nome del file di contenuto.
tipo: string
L’ID univoco per questa pagina in base al nome del file di contenuto.
isFallback
Sezione intitolata “isFallback”tipo: true | undefined
true
se questa pagina non è tradotta nella lingua corrente e utilizza contenuti di riserva dalle impostazioni di lingua predefinite.
Utilizzato solo in siti multilingue.
entryMeta
Sezione intitolata “entryMeta”tipo: { dir: 'ltr' | 'rtl'; lang: string }
Metadati di lingua per il contenuto della pagina. Può essere diverso dai valori di lingua di livello superiore quando una pagina utilizza contenuti di fallback.
La voce della raccolta dei contenuti Astro per la pagina corrente.
Include i valori frontmatter per la pagina corrente in entry.data
.
entry: { data: { title: string; description: string | undefined; // ecc. }}
Scopri di più sulla forma di questo oggetto nel riferimento Tipo di voce della raccolta di Astro.
sidebar
Sezione intitolata “sidebar”tipo: SidebarEntry[]
Voci della barra laterale di navigazione del sito per questa pagina.
hasSidebar
Sezione intitolata “hasSidebar”tipo: boolean
Se la barra laterale deve essere visualizzata o meno in questa pagina.
pagination
Sezione intitolata “pagination”tipo: { prev?: Link; next?: Link }
Collegamenti alla pagina precedente e successiva nella barra laterale, se abilitata.
tipo: { minHeadingLevel: number; maxHeadingLevel: number; items: TocItem[] } | undefined
Sommario per questa pagina se abilitato.
headings
Sezione intitolata “headings”tipo: { depth: number; slug: string; text: string }[]
Matrice di tutte le intestazioni Markdown estratte dalla pagina corrente.
Utilizza invece toc
se vuoi creare un sommario che rispetti le opzioni di configurazione di Starlight.
lastUpdated
Sezione intitolata “lastUpdated”tipo: Date | undefined
Oggetto JavaScript Date
che rappresenta l’ultimo aggiornamento di questa pagina, se abilitato.
editUrl
Sezione intitolata “editUrl”tipo: URL | undefined
Oggetto URL
per l’indirizzo in cui questa pagina può essere modificata se abilitata.
tipo: Record<string, string>
Un oggetto contenente stringhe dell’interfaccia utente localizzate per la pagina corrente. Consulta la guida “Tradurre l’interfaccia di Starlight” per un elenco di tutte le chiavi disponibili.
Componenti
Sezione intitolata “Componenti”Questi componenti vengono renderizzati all’interno dell’elemento <head>
di ciascuna pagina.
Dovrebbero includere solo elementi consentiti all’interno di <head>
.
Componente standard: Head.astro
Componente renderizzato all’interno di <head>
di ogni pagina.
Include tag importanti tra cui <title>
e <meta charset="utf-8">
.
Sostituisci questo componente come ultima risorsa.
Se possibile, preferisci l’opzione di configurazione head
di Starlight.
ThemeProvider
Sezione intitolata “ThemeProvider”Componente standard: ThemeProvider.astro
Componente renderizzato all’interno di <head>
che imposta il supporto del tema scuro/chiaro.
L’implementazione predefinita include uno script in linea e un <template>
utilizzato dallo script in <ThemeSelect />
.
Accessibilità
Sezione intitolata “Accessibilità”SkipLink
Sezione intitolata “SkipLink”Componente standard: SkipLink.astro
Componente renderizzato come primo elemento all’interno di <body>
che si collega al contenuto della pagina principale per l’accessibilità.
L’implementazione predefinita è nascosta finché un utente non la focalizza premendo il tasto tab con la tastiera.
Questi componenti sono responsabili del layout dei componenti di Starlight e della gestione delle visualizzazioni attraverso diversi punti di interruzione. L’override di questi comporta una complessità significativa. Quando possibile, prediligi sovrascrivere un componente di livello inferiore.
PageFrame
Sezione intitolata “PageFrame”Componente standard: PageFrame.astro
Componente di layout avvolto attorno alla maggior parte del contenuto della pagina.
L’implementazione predefinita imposta il layout header-sidebar-main e include slot denominati header
e sidebar
insieme a uno slot predefinito per il contenuto principale.
Renderizza inoltre <MobileMenuToggle />
per supportare l’attivazione/disattivazione della navigazione della barra laterale su piccole finestre (mobili).
MobileMenuToggle
Sezione intitolata “MobileMenuToggle”Componente standard: MobileMenuToggle.astro
Componente reso all’interno di <PageFrame>
responsabile dell’attivazione/disattivazione della navigazione della barra laterale su piccoli viewport (mobili).
TwoColumnContent
Sezione intitolata “TwoColumnContent”Componente standard: TwoColumnContent.astro
Componente di layout avvolto attorno alla colonna del contenuto principale e alla barra laterale destra (sommario). L’implementazione predefinita gestisce il passaggio da un layout a colonna singola con viewport piccolo a un layout a due colonne con viewport più grande.
Intestazione
Sezione intitolata “Intestazione”Questi componenti eseguono il rendering della barra di navigazione superiore di Starlight.
Componente standard: Header.astro
Componente dell’intestazione renderizzato nella parte superiore di ogni pagina.
L’implementazione predefinita renderizza <SiteTitle />
, <Search />
, <SocialIcons />
, <ThemeSelect />
e <LanguageSelect />
.
SiteTitle
Sezione intitolata “SiteTitle”Componente standard: SiteTitle.astro
Componente renderizzato all’inizio dell’intestazione del sito per visualizzare il titolo del sito. L’implementazione predefinita include la logica per il rendering dei loghi definita nella configurazione di Starlight.
Componente standard: Search.astro
Componente utilizzato per eseguire il rendering dell’interfaccia utente di ricerca di Starlight. L’implementazione predefinita include il pulsante nell’intestazione e il codice per visualizzare una schermata di ricerca quando viene cliccata e caricare l’interfaccia utente di Pagefind.
Quando pagefind
è disabilitato, il componente di ricerca predefinito non verrà renderizzato.
Tuttavia, se si sovrascrive Search
, il componente personalizzato verrà sempre renderizzato anche se l’opzione di configurazione pagefind
è false
.
Ciò consente di aggiungere un’interfaccia utente per i provider di ricerca alternativi quando si disabilita Pagefind.
SocialIcons
Sezione intitolata “SocialIcons”Componente standard: SocialIcons.astro
Componente renderizzato nell’intestazione del sito, inclusi i collegamenti alle icone social.
L’implementazione predefinita utilizza l’opzione social
nella configurazione di Starlight per eseguire il rendering di icone e collegamenti.
ThemeSelect
Sezione intitolata “ThemeSelect”Componente standard: ThemeSelect.astro
Componente renderizzato nell’intestazione del sito che consente agli utenti di selezionare la combinazione di colori preferita.
LanguageSelect
Sezione intitolata “LanguageSelect”Componente standard: LanguageSelect.astro
Componente renderizzato nell’intestazione del sito che consente agli utenti di passare a una lingua diversa.
Barra Laterale Globale
Sezione intitolata “Barra Laterale Globale”La barra laterale globale di Starlight include la navigazione principale del sito. Nelle finestre strette questa è nascosta dietro un menu a discesa.
Sidebar
Sezione intitolata “Sidebar”Componente standard: Sidebar.astro
Componente visualizzato prima del contenuto della pagina che contiene la navigazione globale.
L’implementazione predefinita viene visualizzata come barra laterale su viewport sufficientemente ampi e all’interno di un menu a discesa su viewport piccoli (mobili).
Visualizza inoltre <MobileMenuFooter />
per mostrare elementi aggiuntivi all’interno del menu mobile.
MobileMenuFooter
Sezione intitolata “MobileMenuFooter”Componente standard: MobileMenuFooter.astro
Componente visualizzato nella parte inferiore del menu a discesa mobile.
L’implementazione predefinita visualizza <ThemeSelect />
e <LanguageSelect />
.
Barra Laterale della Pagina
Sezione intitolata “Barra Laterale della Pagina”La barra laterale della pagina di Starlight è responsabile della visualizzazione di un sommario che delinea i sottotitoli della pagina corrente. Nelle finestre strette questo si comprime in un menu a discesa fisso.
PageSidebar
Sezione intitolata “PageSidebar”Componente standard: PageSidebar.astro
Componente renderizzato prima del contenuto della pagina principale per visualizzare un sommario.
L’implementazione predefinita rende <TableOfContents />
e <MobileTableOfContents />
.
TableOfContents
Sezione intitolata “TableOfContents”Componente standard: TableOfContents.astro
Componente che renderizza il sommario della pagina corrente su finestre più ampie.
MobileTableOfContents
Sezione intitolata “MobileTableOfContents”Componente standard: MobileTableOfContents.astro
Componente che renderizza il sommario della pagina corrente su piccoli viewport (mobili).
Contenuto
Sezione intitolata “Contenuto”Questi componenti vengono visualizzati nella colonna principale del contenuto della pagina.
Componente standard: Banner.astro
Componente banner renderizzato nella parte superiore di ogni pagina.
L’implementazione predefinita utilizza il valore frontmatter banner
della pagina per decidere se renderizzare o meno.
ContentPanel
Sezione intitolata “ContentPanel”Componente standard: ContentPanel.astro
Componente di layout utilizzato per racchiudere le sezioni della colonna del contenuto principale.
PageTitle
Sezione intitolata “PageTitle”Componente standard: PageTitle.astro
Componente contenente l’elemento <h1>
per la pagina corrente.
Le implementazioni dovrebbero garantire di impostare id="_top"
sull’elemento <h1>
come nell’implementazione predefinita.
DraftContentNotice
Sezione intitolata “DraftContentNotice”Componente standard: DraftContentNotice.astro
Avviso mostrato agli utenti durante lo sviluppo quando la pagina corrente è contrassegnata come bozza.
FallbackContentNotice
Sezione intitolata “FallbackContentNotice”Componente standard: FallbackContentNotice.astro
Avviso visualizzato agli utenti nelle pagine in cui non è disponibile una traduzione per la lingua corrente. Utilizzato solo su siti multilingue.
Componente standard: Hero.astro
Componente renderizzato nella parte superiore della pagina quando hero
è impostato in frontmatter.
L’implementazione predefinita mostra un titolo di grandi dimensioni, uno slogan e collegamenti di invito all’azione insieme a un’immagine facoltativa.
MarkdownContent
Sezione intitolata “MarkdownContent”Componente standard: MarkdownContent.astro
Componente renderizzato attorno al contenuto principale di ogni pagina. L’implementazione predefinita imposta gli stili di base da applicare al contenuto Markdown.
Anche gli stili del contenuto Markdown sono esposti in @astrojs/starlight/style/markdown.css
e limitati alla classe CSS .sl-markdown-content
.
Piè di pagina
Sezione intitolata “Piè di pagina”Questi componenti vengono visualizzati nella parte inferiore della colonna principale del contenuto della pagina.
Componente standard: Footer.astro
Componente piè di pagina renderizzato nella parte inferiore di ogni pagina.
L’implementazione predefinita visualizza <LastUpdated />
, <Pagetion />
e <EditLink />
.
LastUpdated
Sezione intitolata “LastUpdated”Componente standard: LastUpdated.astro
Componente renderizzato nel piè di pagina per visualizzare la data dell’ultimo aggiornamento.
EditLink
Sezione intitolata “EditLink”Componente standard: EditLink.astro
Componente renderizzato nel piè di pagina per visualizzare un collegamento al punto in cui è possibile modificare la pagina.
Pagination
Sezione intitolata “Pagination”Componente standard: Pagination.astro
Componente renderizzato nel piè di pagina per visualizzare le frecce di navigazione tra le pagine precedenti/successive.