Referencia de Frontmatter
Puedes personalizar individualmente las páginas Markdown y MDX en Starlight estableciendo valores en su frontmatter. Por ejemplo, una página regular podría establecer los campos title
y description
:
Campos de frontmatter
title
(requerido)
tipo: string
Debes proporcionar un título para cada página. Este se mostrará en la parte superior de la página, en las pestañas del navegador y en los metadatos de la página.
description
tipo: string
La descripción de la página es usada para los metadatos de la página y será recogida por los motores de búsqueda y en las vistas previas de las redes sociales.
slug
tipo: string
Sobreescribe el slug de la página. Consulta “Definiendo slugs personalizados” en la documentación de Astro para más detalles.
editUrl
tipo: string | boolean
Reemplaza la configuración global editLink
. Establece a false
para deshabilitar el enlace “Editar página” para una página específica o proporciona una URL alternativa donde el contenido de esta página es editable.
head
tipo: HeadConfig[]
Puedes agregar etiquetas adicionales a la etiqueta <head>
de tu página usando el campo head
del frontmatter. Esto significa que puedes agregar estilos personalizados, metadatos u otras etiquetas a una sola página. Similar a la opción global head
.
tableOfContents
tipo: false | { minHeadingLevel?: number; maxHeadingLevel?: number; }
Reemplaza la configuración global tableOfContents
.
Personaliza los niveles de encabezado que se incluirán o establece en false
para ocultar la tabla de contenidos en esta página.
template
tipo: 'doc' | 'splash'
por defecto: 'doc'
Establece la plantilla de diseño para esta página.
Las páginas usan el diseño 'doc'
por defecto.
Establece 'splash'
para usar un diseño más amplio sin barras laterales diseñado para las landing pages.
hero
tipo: HeroConfig
Agrega un componente hero en la parte superior de esta página. Funciona bien con template: splash
.
Por ejemplo, esta configuración muestra algunas opciones comunes, incluyendo la carga de una imagen desde tu repositorio.
Puedes mostrar diferentes versiones de la imagen hero en los modos claro y oscuro.
HeroConfig
banner
tipo: { content: string }
Muestra un banner de anuncio en la parte superior de esta página.
El valor content
puede incluir HTML para enlaces u otro contenido.
Por ejemplo, esta página muestra un banner que incluye un enlace a example.com
.
lastUpdated
type: Date | boolean
Sobrescribe la opción global lastUpdated
. Si se especifica una fecha, debe ser una marca de tiempo YAML válida y sobrescribirá la fecha almacenada en el historial de Git para esta página.
prev
tipo: boolean | string | { link?: string; label?: string }
Anula la opción global de pagination
. Si se especifica un string, el texto del enlace generado se reemplazará, y si se especifica un objeto, tanto el enlace como el texto serán anulados.
next
tipo: boolean | string | { link?: string; label?: string }
Lo mismo que prev
, pero para el enlace de la página siguiente.
pagefind
tipo: boolean
por defecto: true
Establece si esta página debe incluirse en el índice de búsqueda de Pagefind. Establece en false
para excluir una página de los resultados de búsqueda:
draft
tipo: boolean
por defecto: false
Establece si esta página debe considerarse como un borrador y no incluirse en las compilaciones de producción y grupos de enlaces autogenerados. Establece en true
para marcar una página como borrador y hacerla visible solo durante el desarrollo.
sidebar
tipo: SidebarConfig
Controla cómo se muestra esta página en el sidebar al utilizar un grupo de enlaces generado automáticamente.
SidebarConfig
label
tipo: string
por defecto: El title
de la página
Establece la etiqueta para esta página en la barra lateral cuando se muestra en un grupo de enlaces generado automáticamente.
order
tipo: number
Controla el orden de esta página al ordenar un grupo de enlaces generado automáticamente. Los números más bajos se muestran más arriba en el grupo de enlaces.
hidden
tipo: boolean
por defecto: false
Previene que esta página se incluya en un grupo de enlaces generado automáticamente en la barra lateral.
badge
tipo: string | BadgeConfig
Agrega una insignia a la página en la barra lateral cuando se muestra en un grupo de enlaces generado automáticamente.
Cuando se usa un string, la insignia se mostrará con el color de acento predeterminado.
Opcionalmente, pasa un objeto BadgeConfig
con los campos text
y variant
para personalizar la insignia.
attrs
type: Record<string, string | number | boolean | undefined>
Atributos HTML para agregar al enlace de la página en la barra lateral cuando se muestra en un grupo de enlaces generado automáticamente.
Personaliza el esquema del frontmatter
El esquema del frontmatter para la colección de contenido docs
de Starlight se configura en src/content/config.ts
usando el auxiliar docsSchema()
:
Aprende más sobre los esquemas de colección de contenido en “Definir un esquema de colección” en la documentación de Astro.
docsSchema()
toma las siguientes opciones:
extend
tipo: esquema Zod o función que devuelve un esquema Zod
por defecto: z.object({})
Extiende el esquema de Starlight con campos adicionales estableciendo extend
en las opciones de docsSchema()
.
El valor debe ser un esquema Zod.
En el siguiente ejemplo, proporcionamos un tipo más estricto para description
para hacerlo requerido y agregamos un nuevo campo opcional category
:
Para tomar ventaja del auxiliar image()
de Astro, usa una función que devuelva tu extensión de esquema: