Riferimento di Configurazione
Configurare l’integrazione starlight
Starlight è un’integrazione costruita sopra il framework web Astro. Puoi configurare il tuo progetto all’interno del file di configurazione astro.config.mjs
:
Puoi passare le seguenti opzioni all’integrazione starlight
.
title
(obbligatorio)
tipo: string | Record<string, string>
Imposta il titolo per il tuo sito web. Sarà utilizzato nei metadati e nel titolo della scheda del browser.
Il valore può essere una stringa o, per siti multilingua, un oggetto con valori per ciascuna lingua diversa.
Quando si utilizza la forma oggetto, le chiavi devono essere tag BCP-47 (ad esempio en
, ar
, o zh-CN
):
description
tipo: string
Imposta la descrizione per il tuo sito web. Utilizzata nei metadati condivisi con i motori di ricerca nel tag <meta name="description">
se description
non è impostata nel frontmatter di una pagina.
logo
tipo: LogoConfig
Imposta un’immagine del logo da mostrare nella barra di navigazione insieme o al posto del titolo del sito. Puoi impostare una singola proprietà src
o impostare sorgenti di immagini separate per light
e dark
.
LogoConfig
tableOfContents
tipo: false | { minHeadingLevel?: number; maxHeadingLevel?: number; }
predefinito: { minHeadingLevel: 2; maxHeadingLevel: 3; }
Configura la tabella dei contenuti mostrata sulla destra di ogni pagina. Per impostazione predefinita, i titoli <h2>
e <h3>
saranno inclusi in questa tabella dei contenuti.
editLink
tipo: { baseUrl: string }
Abilita i link “Modifica questa pagina” impostando l’URL di base che questi dovrebbero utilizzare. Il link finale sarà editLink.baseUrl
+ il percorso della pagina corrente. Per esempio, per abilitare la modifica delle pagine nel repository withastro/starlight
su GitHub:
Con questa configurazione, una pagina /introduction
avrebbe un link di modifica che punta a https://github.com/withastro/starlight/edit/main/src/content/docs/introduction.md
.
sidebar
tipo: SidebarItem[]
Configura gli elementi di navigazione della barra laterale del tuo sito.
Una barra laterale è un array di link e gruppi di link.
Ad eccezione degli elementi che utilizzano slug
, ogni elemento deve avere una label
e una delle seguenti proprietà:
-
link
— un singolo link a un URL specifico, ad esempio'/home'
o'https://example.com'
. -
slug
— un riferimento a una pagina interna, ad esempio'guides/getting-started'
. -
items
— un array contenente più link della barra laterale e sottogruppi. -
autogenerate
— un oggetto che specifica una directory della tua documentazione per generare automaticamente un gruppo di link.
I link interni possono anche essere specificati come una stringa invece di un oggetto con una proprietà slug
.
Ordinamento
I gruppi della barra laterale generati automaticamente sono ordinati alfabeticamente per nome del file.
Per esempio, una pagina generata da astro.md
apparirebbe sopra la pagina per starlight.md
.
Gruppi comprimibili
I gruppi di link sono espansi per impostazione predefinita. Puoi modificare questo comportamento impostando la proprietà collapsed
di un gruppo su true
.
I sottogruppi generati automaticamente rispettano la proprietà collapsed
del loro gruppo genitore per impostazione predefinita. Imposta la proprietà autogenerate.collapsed
per sovrascrivere questo comportamento.
Traduzione delle etichette
Se il tuo sito è multilingua, la label
di ogni elemento è considerata essere nella lingua predefinita. Puoi impostare una proprietà translations
per fornire etichette per le altre lingue supportate:
SidebarItem
BadgeConfig
locales
tipo: { [dir: string]: LocaleConfig }
Configura l’internazionalizzazione (i18n) per il tuo sito impostando quali locales
sono supportati.
Ogni voce dovrebbe utilizzare la directory in cui sono salvati i file di quella lingua come chiave.
LocaleConfig
Puoi impostare le seguenti opzioni per ogni locale:
label
(obbligatorio)
tipo: string
L’etichetta per questa lingua da mostrare agli utenti, ad esempio nel selettore di lingua. Nella maggior parte dei casi, vorrai che questo sia il nome della lingua come un utente di quella lingua si aspetterebbe di leggerlo, ad esempio "English"
, "العربية"
, o "简体中文"
.
lang
tipo: string
Il tag BCP-47 per questa lingua, ad esempio "en"
, "ar"
, o "zh-CN"
. Se non impostato, verrà utilizzato di default il nome della directory della lingua. I tag di lingua con sottotag regionali (ad esempio "pt-BR"
o "en-US"
) utilizzeranno le traduzioni dell’interfaccia utente integrate per la loro lingua di base se non vengono trovate traduzioni specifiche per la regione.
dir
tipo: 'ltr' | 'rtl'
La direzione di scrittura di questa lingua; "ltr"
per da sinistra a destra (predefinito) o "rtl"
per da destra a sinistra.
Lingua principale
Puoi definire un linguaggio principale senza una cartella /lang/
definendo root
:
Per esempio, questo ti permette di fornire /getting-started/
come un percorso in inglese e /it/getting-started/
come quello equivalente in italiano.
defaultLocale
tipo: string
Imposta la lingua predefinita per questo sito.
Il valore dovrebbe corrispondere a una delle chiavi del tuo oggetto locales
.
(Se la tua lingua predefinita è il tuo locale radice, puoi saltare questo.)
Il locale predefinito verrà utilizzato per fornire contenuti di fallback dove mancano le traduzioni.
social
tipo: Partial<Record<'azureDevOps' | 'bitbucket' | 'blueSky' | 'codeberg' | 'codePen' | 'discord' | 'discourse' | 'email' | 'facebook' | 'github' | 'gitlab' | 'gitter' | 'hackerOne' | 'instagram' | 'linkedin' | 'mastodon' | 'matrix' | 'microsoftTeams' | 'nostr' | 'openCollective' | 'patreon' | 'pinterest' | 'reddit' | 'rss' | 'signal' | 'slack' | 'stackOverflow' | 'telegram' | 'threads' | 'tiktok' | 'twitch' | 'twitter' | 'x.com' | 'youtube' | 'zulip', string>>
Dettagli opzionali sugli account dei social media per questo sito. L’aggiunta di uno qualsiasi di questi li visualizzerà come collegamenti con icone nell’intestazione del sito.
customCss
tipo: string[]
Fornisci file CSS per personalizzare l’aspetto e il comportamento del tuo sito Starlight.
Supporta file CSS locali relativi alla radice del tuo progetto, ad esempio './src/custom.css'
, e CSS che hai installato come modulo npm, ad esempio '@fontsource/roboto'
.
expressiveCode
tipo: StarlightExpressiveCodeOptions | boolean
predefinito: true
Starlight utilizza Expressive Code per renderizzare i blocchi di codice e aggiungere supporto per evidenziare parti di esempi di codice, aggiungere nomi di file ai blocchi di codice e altro ancora. Consulta la guida “Blocchi di codice” per imparare come utilizzare la sintassi di Expressive Code nel tuo contenuto Markdown e MDX.
Puoi utilizzare qualsiasi delle opzioni di configurazione standard di Expressive Code così come alcune proprietà specifiche di Starlight, impostandole nell’opzione expressiveCode
di Starlight.
Ad esempio, imposta l’opzione styleOverrides
di Expressive Code per sovrascrivere il CSS predefinito. Questo permette personalizzazioni come dare ai tuoi blocchi di codice angoli arrotondati:
Se vuoi disabilitare Expressive Code, imposta expressiveCode: false
nella tua configurazione Starlight:
Oltre alle opzioni standard di Expressive Code, puoi anche impostare le seguenti proprietà specifiche di Starlight nella tua configurazione expressiveCode
per personalizzare ulteriormente il comportamento del tema per i tuoi blocchi di codice:
themes
tipo: Array<string | ThemeObject | ExpressiveCodeTheme>
predefinito: ['starlight-dark', 'starlight-light']
Imposta i temi utilizzati per stilizzare i blocchi di codice.
Consulta la documentazione di Expressive Code sui themes
per i dettagli sui formati di tema supportati.
Starlight utilizza di default le varianti scura e chiara del tema Night Owl di Sarah Drasner.
Se fornisci almeno un tema scuro e uno chiaro, Starlight manterrà automaticamente sincronizzato il tema attivo del blocco di codice con il tema corrente del sito.
Configura questo comportamento con l’opzione useStarlightDarkModeSwitch
.
useStarlightDarkModeSwitch
tipo: boolean
predefinito: true
Quando true
, i blocchi di codice passano automaticamente tra i temi chiari e scuri quando cambia il tema del sito.
Quando false
, devi aggiungere manualmente CSS per gestire il passaggio tra più temi.
useStarlightUiThemeColors
tipo: boolean
predefinito: true
se themes
non è impostato, altrimenti false
Quando true
, le variabili CSS di Starlight vengono utilizzate per i colori degli elementi dell’interfaccia utente dei blocchi di codice (sfondi, pulsanti, ombre, ecc.), corrispondenti al tema di colore del sito.
Quando false
, vengono utilizzati i colori forniti dal tema di evidenziazione della sintassi attivo per questi elementi.
pagefind
tipo: boolean
predefinito: true
Definisce se il provider di ricerca predefinito del sito di Starlight Pagefind è abilitato.
Imposta su false
per disabilitare l’indicizzazione del tuo sito con Pagefind.
Questo nasconderà anche l’interfaccia utente di ricerca predefinita se in uso.
head
tipo: HeadConfig[]
Aggiungi tag personalizzati all’<head>
del tuo sito Starlight.
Può essere utile per aggiungere analytics e altri script e risorse di terze parti.
Le voci in head
vengono convertite direttamente in elementi HTML e non passano attraverso l’elaborazione script o style di Astro.
Se hai bisogno di importare risorse locali come script, stili o immagini, sovrascrivi il componente Head.
HeadConfig
lastUpdated
tipo: boolean
predefinito: false
Controlla se il footer mostra quando la pagina è stata aggiornata l’ultima volta.
Per impostazione predefinita, questa funzionalità si basa sulla cronologia Git del tuo repository e potrebbe non essere accurata su alcune piattaforme di distribuzione che eseguono cloni superficiali. Una pagina può sovrascrivere questa impostazione o la data basata su Git utilizzando il campo frontmatter lastUpdated
.
pagination
tipo: boolean
predefinito: true
Definisce se il footer deve includere i link alla pagina precedente e successiva.
Una pagina può sovrascrivere questa impostazione o il testo del link e/o l’URL utilizzando i campi frontmatter prev
e next
.
favicon
tipo: string
predefinito: '/favicon.svg'
Imposta il percorso del favicon predefinito per il tuo sito web che dovrebbe essere posizionato nella directory public/
ed essere un file di icona valido (.ico
, .gif
, .jpg
, .png
, o .svg
).
Se hai bisogno di impostare varianti aggiuntive o favicon di fallback, puoi aggiungere tag utilizzando l’opzione head
:
titleDelimiter
tipo: string
predefinito: '|'
Imposta il delimitatore tra il titolo della pagina e il titolo del sito nel tag <title>
della pagina, che viene visualizzato nelle schede del browser.
Per impostazione predefinita, ogni pagina ha un <title>
del formato Titolo Pagina | Titolo Sito
.
Ad esempio, questa pagina è intitolata “Riferimento di Configurazione” e questo sito è intitolato “Starlight”, quindi il <title>
per questa pagina è “Riferimento di Configurazione | Starlight”.
disable404Route
tipo: boolean
predefinito: false
Disabilita l’iniezione della pagina 404 predefinita di Starlight. Per utilizzare una route src/pages/404.astro
personalizzata nel tuo progetto, imposta questa opzione su true
.
components
tipo: Record<string, string>
Fornisci i percorsi dei componenti per sovrascrivere le implementazioni predefinite di Starlight.
Consulta il Riferimento alle sostituzioni per i dettagli di tutti i componenti che puoi sovrascrivere.
plugins
tipo: StarlightPlugin[]
Estendi Starlight con plugin personalizzati. I plugin applicano modifiche al tuo progetto per modificare o aggiungere funzionalità a Starlight.
Visita la vetrina dei plugin per vedere un elenco dei plugin disponibili.
Consulta il Riferimento ai plugin per i dettagli sulla creazione dei tuoi plugin personalizzati.
credits
Abilita la visualizzazione di un link “Costruito con Starlight” nel footer del tuo sito.