Navegação da barra lateral
Uma barra lateral bem organizada é essencial para uma boa documentação por ser uma das principais maneiras que usuários vão navegar pelo seu site. Starlight provê um conjunto completo de opções para customizar o layout e conteúdo de sua barra lateral.
Barra lateral padrão
Por padrão, Starlight vai gerar automaticamente uma barra lateral baseada na estrutura dos arquivos da sua documentação, utilizando a propriedade title
de cada arquivos como entrada na barra lateral.
Por exemplo, dada a seguinte estrutura de arquivos:
Directorysrc/
Directorycontent/
- …
Directorydocs/
Directoryguides/
- …
- components.md
- i18n.md
Directoryreference/
- …
- configuration.md
Esta barra lateral será gerada automaticamente:
Aprenda mais sobre barras laterais auto-geradas na seção grupos auto-gerados.
Adicione links e grupos de links
Para configurar os links e grupos de links (dentro de um cabeçalho colapsável) de sua barra lateral, use a propriedade starlight.sidebar
em astro.config.mjs
.
Combinando os links e grupos você pode criar uma grande variedade de layouts de barrra lateral.
Links
Adicione um link para uma página interna ou externa utilizando um objeto com as propriedades label
e link
.
starlight({ sidebar: [ // Um link para o guia de CSS e Estilização. { label: 'CSS e Estilização', link: '/pt-br/guides/css-and-tailwind/' }, // Um link externo para o website do Astro. { label: 'Astro', link: 'https://astro.build/' }, ],});
A configuração acima gera a seguinte barra lateral:
Grupos
Você pode adicionar estrutura para a sua barra lateral agrupando links relacionados dentro de um título colapsável. Grupos podem conter tanto links quanto outros sub-grupos.
Adicione um grupo utilizando um objeto com as propriedades label
e items
.
A label
será utilizada como o título do grupo.
Adicione links e sub-grupos ao array items
.
starlight({ sidebar: [ // Um grupo de links nomeado "Guias". { label: 'Guias', items: [ { label: 'Componentes', link: '/guides/components/' }, { label: 'Internacionalização (i18n)', link: '/guides/i18n/' }, // Um grupo aninhado de links. { label: 'Estilização', items: [ { label: 'CSS', link: '/guides/css-and-tailwind/' }, { label: 'Tailwind', link: '/guides/css-and-tailwind/' }, { label: 'Shiki', link: '/guides/css-and-tailwind/' }, ], }, ], }, ],});
A configuração acima gera a seguinte barra lateral:
Grupos auto-gerados
Starlight pode gerar automaticamente um grupo em sua barra lateral baseado em um diretório de sua docs. Isso é útil quando você não quer especificar manualmente cada item em um grupo da barra lateral. Por padrão, páginas são ordenadas alfabeticamente por nome do arquivo.
Adicione um grupo auto-gerado utilizando um objeto com as propriedades label
e autogenerate
. Sua configuração em autogenerate
deve especificar o diretório (directory
) a ser usado para as entradas da barra lateral. Por exemplo, com a seguinte configuração:
starlight({ sidebar: [ { label: 'Guias', // Gera automaticamente um grupo com os links para o diretório 'guias'. autogenerate: { directory: 'guias' }, }, ],});
E esta estrutura de arquivos:
Directorysrc/
Directorycontent/
- …
Directorydocs/
Directoryguides/
- …
- components.md
- i18n.md
Directoryadvanced/
- project-structure.md
A barra lateral gerada seria esta:
Customizando links auto-gerados no frontmatter
Use o campo sidebar
do frontmatter em páginas individuais para customizar os links auto-gerados.
As opções de barra lateral do frontmatter lhe permitem configurar um rótulo customizado ou adicionar um emblema a um link, ocultar um link da barra lateral, ou definir um peso de ordenação customizado.
---title: Minha páginasidebar: # Define um rótulo customizado para o link label: Rótulo customizado para a barra lateral # Define uma ordem customizada para o link (números menores são exibidos acima) order: 2 # Adiciona um emblema ao link badge: text: Novo variant: tip---
Um grupo auto-gerado incluindo uma página com o frontmatter acima resultará nesta barra lateral:
Emblemas
Links, grupos, e grupos auto-gerados podem incluir uma propriedade badge
para exibir um emblema ao lado de seu rótulo.
starlight({ sidebar: [ { label: 'Guias', items: [ // Um link com um emblema "Novo". { label: 'Componentes', link: '/guides/components/', badge: 'Novo', }, ], }, // Um grupo auto-gerado com um emblema "Descontinuado". { label: 'Referência', badge: 'Descontinuado', autogenerate: { directory: 'reference' }, }, ],});
A configuração acima gera a seguinte barra lateral:
Variações de emblemas
Customize o estilo do emblema utilizando um objeto com as propriedades text
e variant
.
O texto (text
) representa o conteúdo a ser exibido (e.g. “Novo”).
Sobrescreva o estilo padrão (default
), que usa a cor de destaque do seu site, definindo a propriedade variant
para um dos seguintes valores: note
, tip
, danger
, caution
ou success
.
starlight({ sidebar: [ { label: 'Guias', items: [ // Um link com um emblema amarelo "Experimental". { label: 'Componentes', link: '/guides/components/', badge: { text: 'Experimental', variant: 'caution' }, }, ], }, ],});
A configuração acima gera a seguinte barra lateral:
Atributos HTML customizados
Links também podem incluir uma propriedade attrs
para adicionar atributos HTML customizados ao elemento do link.
No exemplo abaixo, attrs
é utilizado para adicionar um atributo target="_blank"
, de forma que o link abra em uma nova aba, e para aplicar um atributo style
para exibir o rótulo do link em itálico.
starlight({ sidebar: [ { label: 'Guias', items: [ // Um link externo para a documentação do Astro que abre em uma nova aba. { label: 'Astro Docs', link: 'https://docs.astro.build/', attrs: { target: '_blank', style: 'font-style: italic' }, }, ], }, ],});
A configuração acima gera esta barra lateral:
Internacionalização
Use a propriedade translations
em entradas de link e grupo para traduzir o rótulo do link ou grupo para cada linguagem suportada especificando uma tag de língua BCP-47, e.g. "en"
, "ar"
, ou "zh-CN"
, como a chave e o rótulo traduzido como o valor.
A propriedade label
será usada para a língua padrão e para línguas sem uma tradução.
starlight({ sidebar: [ { label: 'Guias', translations: { 'en-US': 'Guides', }, items: [ { label: 'Componentes', translations: { 'en-US': 'Components', }, link: '/guides/components/', }, { label: 'Internacionalização (i18n)', translations: { 'en-US': 'Internationalization (i18n)', }, link: '/guides/i18n/', }, ], }, ],});
Navegar pela documentação em inglês americano gerará esta barra lateral:
Grupos colapsáveis
Grupos de links podem ser colapsados por padrão definindo a propriedade collapsed
como true
.
starlight({ sidebar: [ { label: 'Guias', // Colapse o grupo por padrão. collapsed: true, items: [ { label: 'Componentes', link: '/guides/components/' }, { label: 'Internacionalização (i18n)', link: '/guides/i18n/' }, ], }, ],});
The configuration above generates the following sidebar:
Grupos auto-gerados respeitam o valor collapsed
do grupo pai:
starlight({ sidebar: [ { label: 'Guias', // Colapse o grupo e seus sub-grupos auto-gerados por padrão. collapsed: true, autogenerate: { directory: 'guides' }, }, ],});
A configração acima gera esta barra lateral:
Esse comportamento pode ser sobrescrito definindo a propriedade autogenerate.collapsed
.
starlight({ sidebar: [ { label: 'Guias', // Não colapse o grupo "Guias", mas colapse seus // sub-grupos auto-gerados. collapsed: false, autogenerate: { directory: 'guides', collapsed: true }, }, ],});
The configuration above generates the following sidebar: