Salta ai contenuti

Navigazione nella barra laterale

Una barra laterale ben organizzata è fondamentale per una buona documentazione poiché è uno dei modi principali in cui gli utenti navigheranno nel tuo sito. Starlight fornisce un set completo di opzioni per personalizzare il layout e il contenuto della barra laterale.

Barra laterale predefinita

Per impostazione predefinita, Starlight genererà automaticamente una barra laterale in base alla struttura del file system della documentazione, utilizzando la proprietà title di ciascun file come voce della barra laterale.

Ad esempio, data la seguente struttura di file:

  • Directorysrc/
    • Directorycontent/
      • Directorydocs/
        • Directoryguides/
          • components.md
          • i18n.md
        • Directoryreference/
          • configuration.md

Verrà generata automaticamente la seguente barra laterale:

Scopri di più sulle barre laterali generate automaticamente nella sezione gruppi generati automaticamente.

Aggiungi collegamenti e gruppi di collegamenti

Per configurare i link e i gruppi di link della barra laterale (all’interno di un’intestazione comprimibile), utilizza la proprietà starlight.sidebar in astro.config.mjs.

Combinando collegamenti e gruppi, puoi creare un’ampia varietà di layout della barra laterale.

Collegamenti

Aggiungi un collegamento a una pagina interna o esterna utilizzando un oggetto con le proprietà label e link.

starlight({
	sidebar: [
		// Un collegamento alla guida CSS e stile.
		{ label: 'CSS e stile', link: '/guides/css-and-tailwind/' },
		// Un collegamento esterno al sito web di Astro.
		{ label: 'Astro', link: 'https://astro.build/' },
	],
});

La configurazione sopra genera la seguente barra laterale:

Gruppi

Puoi aggiungere struttura alla barra laterale raggruppando i collegamenti correlati sotto un’intestazione comprimibile. I gruppi possono contenere sia collegamenti che altri sottogruppi.

Aggiungi un gruppo utilizzando un oggetto con le proprietà label e items. label verrà utilizzato come intestazione del gruppo. Aggiungi collegamenti o sottogruppi all’array items.

starlight({
	sidebar: [
		// Un gruppo di collegamenti etichettati "Guide".
		{
			label: 'Guide',
			items: [
				{ label: 'Componenti', link: '/guides/components/' },
				{ label: 'Internazionalizzazione (i18n)', link: '/guides/i18n/' },
				// Un gruppo nidificato di collegamenti.
				{
					label: 'Stile',
					items: [
						{ label: 'CSS', link: '/guides/css-and-tailwind/' },
						{ label: 'Tailwind', link: '/guides/css-and-tailwind/' },
						{ label: 'Shiki', link: '/guides/css-and-tailwind/' },
					],
				},
			],
		},
	],
});

La configurazione sopra genera la seguente barra laterale:

Gruppi generati automaticamente

Starlight può generare automaticamente un gruppo nella barra laterale in base a una directory dei tuoi documenti. Ciò è utile quando non desideri inserire manualmente ciascun elemento della barra laterale in un gruppo. Per impostazione predefinita, le pagine verranno ordinate alfabeticamente in base al nome del file.

Aggiungi un gruppo generato automaticamente utilizzando un oggetto con le proprietà label e autogenerate. La tua configurazione di autogenerate deve specificare quale directory da utilizzare per le voci della barra laterale. Ad esempio, con la seguente configurazione:

starlight({
	sidebar: [
		{
			label: 'Guides',
			// Genera automaticamente un gruppo di collegamenti per la directory 'guides'.
			autogenerate: { directory: 'guides' },
		},
	],
});

E la seguente struttura di file:

  • Directorysrc/
    • Directorycontent/
      • Directorydocs/
        • Directoryguides/
          • components.md
          • i18n.md
          • Directoryadvanced/
            • project-structure.md

Verrà generata la seguente barra laterale:

Personalizzazione dei collegamenti generati automaticamente nel frontmatter

Utilizza il campo frontmatter sidebar nelle singole pagine per personalizzare i collegamenti generati automaticamente.

Le opzioni frontmatter della barra laterale ti consentono di impostare un’etichetta personalizzata o aggiungere un badge a un collegamento, nascondi un collegamento dalla barra laterale o definire un ponderazione dell’ordinamento personalizzato.

---
title: La mia pagina
sidebar:
  # Imposta un'etichetta personalizzata per il collegamento
  label: etichetta personalizzata della barra laterale
  # Imposta un ordine personalizzato per il collegamento (i numeri inferiori vengono visualizzati più in alto)
  order: 2
  # Aggiungi un badge al collegamento
  badge:
    text: Nuovo
    variant: tip
---

Un gruppo generato automaticamente che include una pagina con il frontmatter sopra genererà la seguente barra laterale:

Badge

I collegamenti possono anche includere una proprietà badge per visualizzare un badge accanto all’etichetta del collegamento.

starlight({
	sidebar: [
		{
			label: 'Guide',
			items: [
				// Un collegamento con un badge "Nuovo".
				{
					label: 'Componenti',
					link: '/guides/components/',
					badge: 'Nuovo',
				},
			],
		},
	],
});

La configurazione sopra genera la seguente barra laterale:

Varianti del badge

Personalizza lo stile del badge utilizzando un oggetto con proprietà text e variant.

Il text rappresenta il contenuto da visualizzare (ad esempio “Nuovo”). Sostituisci lo stile default, che utilizza il colore in risalto del tuo sito, impostando la proprietà variant su uno dei seguenti valori: note, tip, danger, caution o success.

starlight({
	sidebar: [
		{
			label: 'Guide',
			items: [
				// Un collegamento con un badge giallo "Sperimentale".
				{
					label: 'Componenti',
					link: '/guides/components/',
					badge: { text: 'Sperimentale', variant: 'caution' },
				},
			],
		},
	],
});

La configurazione sopra genera la seguente barra laterale:

Attributi HTML personalizzati

I collegamenti possono anche includere una proprietà attrs per aggiungere attributi HTML personalizzati all’elemento collegamento.

Nell’esempio seguente, attrs viene utilizzato per aggiungere un attributo target="_blank", in modo che il collegamento si apra in una nuova scheda e per applicare un attributo personalizzato style per scrivere in corsivo l’etichetta del collegamento:

starlight({
	sidebar: [
		{
			label: 'Guide',
			items: [
				// Un collegamento esterno alla documentazione di Astro che si apre in una nuova scheda.
				{
					label: 'Documentazione di Astro',
					link: 'https://docs.astro.build/',
					attrs: { target: '_blank', style: 'font-style: italic' },
				},
			],
		},
	],
});

La configurazione sopra genera la seguente barra laterale:

Internazionalizzazione

Utilizza la proprietà translations sulle voci dei collegamenti e dei gruppi per tradurre il collegamento o l’etichetta del gruppo per ciascuna lingua supportata. La proprietà label verrà utilizzata per la locale predefinita e per le lingue senza traduzione.

starlight({
	sidebar: [
		{
			label: 'Guide',
			translations: {
				es: 'Guías',
			},
			items: [
				{
					label: 'Componenti',
					translations: {
						es: 'Componentes',
					},
					link: '/guides/components/',
				},
				{
					label: 'Internazionalizzazione (i18n)',
					translations: {
						es: 'Internacionalización (i18n)',
					},
					link: '/guides/i18n/',
				},
			],
		},
	],
});

La navigazione della documentazione in spagnolo genererà la seguente barra laterale:

Gruppi che si riducono

I gruppi di collegamenti possono essere compressi per impostazione predefinita impostando la proprietà collapsed su true.

starlight({
	sidebar: [
		{
			label: 'Guide',
			// Comprimi il gruppo per impostazione predefinita.
			collapsed: true,
			items: [
				{ label: 'Componenti', link: '/guides/components/' },
				{ label: 'Internazionalizzazione (i18n)', link: '/guides/i18n/' },
			],
		},
	],
});

La configurazione sopra genera la seguente barra laterale:

I gruppi generati automaticamente rispettano il valore collapsed del gruppo principale:

starlight({
	sidebar: [
		{
			label: 'Guide',
			// Comprimi il gruppo e i relativi sottogruppi generati automaticamente per impostazione predefinita.
			collapsed: true,
			autogenerate: { directory: 'guides' },
		},
	],
});

La configurazione sopra genera la seguente barra laterale:

Questo comportamento può essere ignorato definendo la proprietà autogenerate.collapsed.

starlight({
	sidebar: [
		{
			label: 'Guide',
			// Non comprimere il gruppo "Guide", ma comprimerlo
			// sottogruppi generati automaticamente.
			collapsed: false,
			autogenerate: { directory: 'guides', collapsed: true },
		},
	],
});

La configurazione sopra genera la seguente barra laterale: