Referência do Frontmatter
Você pode customizar páginas Markdown e MDX no Starlight definindo valores em seu frontmatter. Por exemplo, uma página comum pode definir os campos title
e description
:
Campos do Frontmatter
title
(obrigatório)
tipo: string
Você deve providenciar um título para cada página. Ele será mostrado no topo da página, em abas do navegador e nos metadados da página.
description
tipo: string
A descrição da página é utilizada para metadados da página e será utilizada por motores de busca e em pré-visualizações em redes sociais.
slug
tipo: string
Sobrescreve o slug da página. Veja “Definindo slugs customizados” na documentação do Astro para mais detalhes.
editUrl
tipo: string | boolean
Sobreescreve a configuração global editLink
. Defina como false
para desabilitar o link “Editar página” para uma página específica ou providencie uma URL alternativa onde o conteúdo dessa página é editável.
head
tipo: HeadConfig[]
Você pode adicionar tags adicionais para ao <head>
da sua página utilizando o campo frontmatter head
. Isso significa que você pode adicionar estilos customizados, metadados ou outras tags a uma única página. Similar a opção global head
.
tableOfContents
tipo: false | { minHeadingLevel?: number; maxHeadingLevel?: number; }
Sobrescreve a configuração global tableOfContents
.
Customize os níveis de cabeçalho a serem incluídos ou defina como false
para esconder o índice nessa página.
template
tipo: 'doc' | 'splash'
padrão: 'doc'
Define o layout de template para essa página.
Páginas usam o layout 'doc'
por padrão.
Defina para 'splash'
para usar o layout mais largo sem nenhuma barra lateral, projetado para páginas iniciais.
hero
tipo: HeroConfig
Adiciona um componente hero ao topo dessa página. Funciona bem com template: splash
.
Por exemplo, essa configuração mostra algumas opções comuns, incluindo carregamento de uma imagem do seu repositório.
Você pode exibir diferentes versões da imagem hero no modo claro e escuro.
HeroConfig
banner
tipo: { content: string }
Exibe um banner de anúncio no topo desta página.
O valor de conteúdo
pode incluir HTML para links ou outro conteúdo.
Por exemplo, esta página exibe um banner que inclui um link para example.com
.
lastUpdated
tipo: Date | boolean
Sobrescreve a opção global lastUpdated
. Se uma data é especificada, ela deve ser um timestamp YAML válido e irá sobrescrever a data armazenada no histórico do Git para essa página.
prev
tipo: boolean | string | { link?: string; label?: string }
Sobrescreve a opção global pagination
. Se uma string é especificada, o texto do link gerado será substituído e se um objeto for especificado, ambos o link e o texto serão sobrescritos.
next
tipo: boolean | string | { link?: string; label?: string }
Mesmo que prev
mas para o link da próxima página.
pagefind
tipo: boolean
padrão: true
Configura se essa página deve ou não ser inclusa no índice de busca do Pagefind. Defina como false
para excluir a página do resultado de buscas.
sidebar
tipo: SidebarConfig
Controla como essa página é mostrada na barra lateral, quando se utiliza um grupo de links gerados automaticamente.
SidebarConfig
label
tipo: string
padrão: title
da página
Define o rótulo para essa página na barra lateral quando mostrado em um grupo de links gerados automaticamente.
order
tipo: number
Controla a ordem dessa página ao ordenar um grupo de links gerados automaticamente. Números menores são mostrados acima no grupo de links.
hidden
tipo: boolean
padrão: false
Previne essa página de ser incluída no no grupo gerado automaticamente da barra lateral.
badge
type: string | BadgeConfig
Adicione um emblema a página na barra lateral ao ser mostrada em um grupo gerado automaticamente de links.
Ao utilizar uma string, o emblema será mostrado com uma cor de destaque padrão.
Opcionalmente, passe um objeto BadgeConfig
com os campos text
e variant
para customizar o emblema.
attrs
tipo: Record<string, string | number | boolean | undefined>
Atributos HTML que será adicionado ao link da barra lateral da página quando exibido em um grupo de link gerados automaticamente.
Customize o esquema de frontmatter
O esquema de frontmatter da coleção de conteúdo docs
do Starlight é configurado em src/content/config.ts
utilizando o utilitário docsSchema()
:
Aprenda mais sobre esquemas de coleções de conteúdo em “Definindo um esquema de coleção” na documentação do Astro.
docsSchema()
recebe os seguintes argumentos:
extend
tipo: Esquema do Zod ou função que retorne um esquema do Zod
padrão: z.object({})
Estenda o esquema do Starlight com campos adicionais definindo extend
nas opções do docsSchema()
.
O valor deve ser um esquema do Zod.
No exemplo a seguir, nós definimos um tipo mais restrito para a descrição (description
) para torná-la obrigatória e adicionamos um novo campo opcional categoria
:
Para fazer uso do utilitário image()
do Astro, use uma função para retornar sua extensão de esquema: