Riferimenti frontmatter
Puoi personalizzare pagine Markdown e MDX in Starlight definendo i valori nel frontmatter. Per esempio, una pagina potrebbe definire title
e description
:
Campi del frontmatter
title
(obbligatorio)
tipo: string
Devi fornire un titolo ad ogni pagina. Questo sarà usato in testa alla pagina, nelle finestre del browser e nei metadati della pagina.
description
tipo: string
La descrizione è utilizzata nei metadati e sarà utilizzata dai motori di ricerca e nelle anteprime nei social.
slug
tipo:: string
Sovrascrivi lo slug della pagina. Vedi “Definizione degli slug personalizzati” nella documentazione di Astro per ulteriori dettagli.
editUrl
tipo: string | boolean
Sovrascrive la configurazione globale editLink
. Metti a false
per disabilitare “Modifica la pagina” per quella pagina specifica oppure fornisci un link alternativo.
head
tipo: HeadConfig[]
Puoi aggiungere tag aggiuntivi nell’<head>
della pagina utilizzando la chiave head
nel frontmatter. Questo significa che puoi aggiungere stili personalizzati, metadati o altri tag in una pagina. Il funzionamento è simile all’opzione globale head
.
tableOfContents
tipo: false | { minHeadingLevel?: number; maxHeadingLevel?: number; }
Sovrascrive la configurazione globale tableOfContents
.
Cambia i livelli di titoli inclusi o, se messo a false
, nasconde la tabella dei contenuti della pagina.
template
tipo: 'doc' | 'splash'
predefinito: 'doc'
Definisce il layout per la pagina.
Le pagine utilizzano 'doc'
come predefinita.
Se valorizzato a 'splash'
viene utilizzato un layout senza barre laterali ottimale per la pagina iniziale.
hero
tipo: HeroConfig
Aggiunge un componente hero all’inizio della pagina. Funziona bene con template: splash
.
Per esempio, questa configurazione illustra comuni opzioni, incluso il caricamento di un’immagine.
Puoi mostrare diverse versioni dell’immagine in base alla modalità chiara o scura.
HeroConfig
banner
tipo: { content: string }
Visualizza un banner di annuncio nella parte superiore di questa pagina.
Il valore content
può includere HTML per collegamenti o altri contenuti.
Ad esempio, questa pagina visualizza un banner che include un collegamento a example.com
.
lastUpdated
tipo: Date | boolean
Sostituisce l’opzione globale lastUpdated
. Se viene specificata una data, deve essere un timestamp YAML valido e sovrascriverà la data archiviata nella cronologia Git per questa pagina.
prev
tipo: boolean | string | { link?: string; label?: string }
Sostituisce l’opzione globale paginazione
. Se viene specificata una stringa, il testo del collegamento generato verrà sostituito e se viene specificato un oggetto, sia il collegamento che il testo verranno sovrascritti.
next
tipo: boolean | string | { link?: string; label?: string }
Uguale a prev
ma per il collegamento alla pagina successiva.
pagefind
tipo: boolean
predefinito: true
Imposta se questa pagina deve essere inclusa nell’indice di ricerca Pagefind. Imposta su false
per escludere una pagina dai risultati di ricerca:
sidebar
tipo: SidebarConfig
Controlla il modo in cui questa pagina viene visualizzata nella barra laterale, quando si utilizza un gruppo di collegamenti generato automaticamente.
SidebarConfig
label
tipo: string
predefinito: la pagina title
Imposta l’etichetta per questa pagina nella barra laterale quando viene visualizzata in un gruppo di collegamenti generato automaticamente.
order
tipo: number
Controlla l’ordine di questa pagina quando ordini un gruppo di collegamenti generato automaticamente. I numeri più bassi vengono visualizzati più in alto nel gruppo di collegamenti.
hidden
tipo: boolean
predefinito: false
Impedisce che questa pagina venga inclusa in un gruppo della barra laterale generato automaticamente.
badge
tipo: string | BadgeConfig
Aggiungi un badge alla pagina nella barra laterale quando viene visualizzata in un gruppo di collegamenti generato automaticamente.
Quando si utilizza una stringa, il badge verrà visualizzato con un colore in risalto predefinito.
Facoltativamente, passa un oggetto BadgeConfig
con i campi text
e variant
per personalizzare il badge.
attrs
tipo: Record<string, string | number | boolean | undefined>
Attributi HTML da aggiungere al collegamento della pagina nella barra laterale quando viene visualizzato in un gruppo di collegamenti generato automaticamente.
Personalizza lo schema del frontmatter
Lo schema del frontmatter per la raccolta di contenuti docs
di Starlight è configurato in src/content/config.ts
utilizzando l’helper docsSchema()
:
Per saperne di più sugli schemi di raccolta dei contenuti, consulta “Definizione di uno schema di raccolta” nella documentazione di Astro.
docsSchema()
accetta le seguenti opzioni:
extend
tipo: Schema Zod o funzione che restituisce uno schema Zod
predefinito: z.object({})
Estendi lo schema di Starlight con campi aggiuntivi impostando extend
nelle opzioni di docsSchema()
.
Il valore dovrebbe essere uno schema Zod.
Nell’esempio seguente, forniamo un tipo più restrittivo per description
per renderlo obbligatorio e aggiungiamo un nuovo campo opzionale category
:
Per sfruttare l’helper image()
di Astro,, utilizza una funzione che restituisce l’estensione dello schema: