Referencia de los Datos de Ruta
El objeto de datos de ruta de Starlight contiene información sobre la página actual. Aprende más sobre cómo funciona el modelo de datos de Starlight en la guía de “Datos de Ruta”.
En los componentes de Astro, accede a los datos de ruta desde Astro.locals.starlightRoute
:
---const { hasSidebar } = Astro.locals.starlightRoute;---
En el middleware de ruta, accede a los datos de ruta desde el objeto de contexto pasado a tu función de middleware:
import { defineRouteMiddleware } from '@astrojs/starlight/route-data';
export const onRequest = defineRouteMiddleware((context) => { const { hasSidebar } = context.locals.starlightRoute;});
starlightRoute
Sección titulada «starlightRoute»El objeto starlightRoute
tiene las siguientes propiedades:
Tipo: 'ltr' | 'rtl'
Dirección de escritura de la página.
Tipo: string
Etiqueta de idioma BCP-47 para la configuración regional de esta página, por ejemplo, en
, zh-CN
o pt-BR
.
Tipo: string | undefined
La ruta base en la que se sirve un idioma. undefined
para los slugs de la configuración regional raíz.
siteTitle
Sección titulada «siteTitle»Tipo: string
El título del sitio para la configuración regional de esta página.
siteTitleHref
Sección titulada «siteTitleHref»Tipo: string
El valor para el atributo href
del título del sitio, que enlaza de vuelta a la página de inicio, por ejemplo, /
.
Para sitios multilingües, esto incluirá la configuración regional actual, por ejemplo, /en/
o /zh-cn/
.
Tipo: string
El slug para esta página generado a partir del nombre del archivo de contenido.
Esta propiedad está obsoleta y se eliminará en una futura versión de Starlight.
Migra a la nueva API de Content Layer utilizando el docsLoader
de Starlight y utiliza la propiedad id
en su lugar.
Tipo: string
El slug para esta página o el ID único para esta página basado en el nombre del archivo de contenido si se utiliza el flag legacy.collections
.
isFallback
Sección titulada «isFallback»Tipo: boolean | undefined
true
si esta página no está traducida en el idioma actual y está utilizando contenido de respaldo de la configuración regional predeterminada.
Solo se utiliza en sitios multilingües.
entryMeta
Sección titulada «entryMeta»Tipo: { dir: 'ltr' | 'rtl'; lang: string }
Metadatos de configuración regional para el contenido de la página. Puede ser diferente de los valores de configuración regional de nivel superior cuando una página está utilizando contenido de respaldo.
La entrada de la colección de contenido de Astro para la página actual.
Incluye los valores del frontmatter para la página actual en entry.data
.
entry: { data: { title: string; description: string | undefined; // etc. }}
Aprende más sobre la forma de este objeto en la referencia del Tipo de Entrada de Colección de Astro.
sidebar
Sección titulada «sidebar»Tipo: SidebarEntry[]
Entradas de la barra lateral de navegación del sitio para esta página.
hasSidebar
Sección titulada «hasSidebar»Tipo: boolean
Indica si la barra lateral debe mostrarse o no en esta página.
pagination
Sección titulada «pagination»Tipo: { prev?: Link; next?: Link }
Enlaces a la página anterior y siguiente en la barra lateral si está habilitada.
Tipo: { minHeadingLevel: number; maxHeadingLevel: number; items: TocItem[] } | undefined
Tabla de contenido para esta página si está habilitada.
headings
Sección titulada «headings»Tipo: { depth: number; slug: string; text: string }[]
Array de todos los encabezados de Markdown extraídos de la página actual.
Utiliza toc
en su lugar si deseas construir un componente de tabla de contenido que respete las opciones de configuración de Starlight.
lastUpdated
Sección titulada «lastUpdated»Tipo: Date | undefined
Objeto Date
de JavaScript que representa cuándo se actualizó por última vez esta página si está habilitado.
editUrl
Sección titulada «editUrl»Tipo: URL | undefined
Objeto URL
para la dirección donde se puede editar esta página si está habilitado.
tipo: HeadConfig[]
Array de todas las etiquetas para incluir en el <head>
de la página actual.
Incluye etiquetas importantes como <title>
y <meta charset="utf-8">
.
Utilidades
Sección titulada «Utilidades»defineRouteMiddleware()
Sección titulada «defineRouteMiddleware()»Utiliza la utilidad defineRouteMiddleware()
para ayudar a tipar tu módulo de middleware de ruta:
import { defineRouteMiddleware } from '@astrojs/starlight/route-data';
export const onRequest = defineRouteMiddleware((context) => { // ...});
Tipo StarlightRouteData
Sección titulada «Tipo StarlightRouteData»Si estás escribiendo código que necesita trabajar con los datos de ruta de Starlight, puedes importar el tipo StarlightRouteData
para que coincida con la forma de Astro.locals.starlightRoute
.
En el siguiente ejemplo, una función usePageTitleInTOC()
actualiza los datos de ruta para utilizar el título de la página actual como etiqueta para el primer elemento de la tabla de contenido, reemplazando la etiqueta predeterminada “Overview”.
El tipo StarlightRouteData
te permite verificar si los cambios en los datos de ruta son válidos.
import type { StarlightRouteData } from '@astrojs/starlight/route-data';
export function usePageTitleInTOC(starlightRoute: StarlightRouteData) { const overviewLink = starlightRoute.toc?.items[0]; if (overviewLink) { overviewLink.text = starlightRoute.entry.data.title; }}
Esta función se puede llamar desde un middleware de ruta:
import { defineRouteMiddleware } from '@astrojs/starlight/route-data';import { usePageTitleInTOC } from './route-utils';
export const onRequest = defineRouteMiddleware((context) => { usePageTitleInTOC(context.locals.starlightRoute);});