libreria-astro-lefebvre
Version:
Librería de componentes Astro, React y Vue para Lefebvre
52 lines (50 loc) • 2.92 kB
text/typescript
import type { ComponentMetadata } from '../interfaces/types';
export const metadata: ComponentMetadata = {
component_name: 'Indice_2025_Taiwan',
category: 'Contenido de Texto',
name: 'Índice de contenidos numerado con enlaces ancla auto-generados 2025',
description: 'Tabla de contenidos (TOC) con título h2 y listado de apartados numerados automáticamente (1., 2., 3...). Los enlaces navegan a elementos con id coincidente en la misma página. Si no se rellena el campo "ID del ancla", se auto-genera a partir del título: minúsculas, sin acentos, espacios a guiones y sin caracteres especiales (p. ej. "Qué es X" → "que-es-x")',
framework: 'Astro',
priority: 1,
tags: ['texto', 'indice', 'toc', 'navegacion', 'ancla'],
fields: [
{
name: 'titulo',
type: 'text',
help: 'Título del índice (h2). Se renderiza siempre; si se deja vacío aparece el h2 vacío. No admite HTML',
label: 'Texto del título',
mandatory: false,
example_value: 'Índice de contenidos'
},
{
name: 'items',
type: 'list',
help: 'Listado de apartados del índice. Cada ítem se numera automáticamente (1., 2., 3...). El índice navega a los elementos de la misma página que tengan un id coincidente con el enlace (sin el "#")',
label: 'Listado de items del índice',
mandatory: false,
items: {
type: 'object',
fields: [
{ name: 'titulo', type: 'text', help: 'Texto visible del ítem (se renderiza con su número ordinal: "1. Introducción", "2. ..."). No admite HTML', label: 'Texto del ítem', example_value: 'Introducción' },
{ name: 'enlace', type: 'text', help: 'ID del elemento destino de la misma página, SIN el "#" (el componente lo añade automáticamente). Si se deja vacío, se GENERA automáticamente desde el título: minúsculas, sin acentos, espacios a guiones y sin caracteres especiales (p. ej. "Qué es GenIA-L" → "que-es-genial"). El elemento con ese id debe existir en la página', label: 'ID del ancla (sin #)', example_value: 'introduccion' }
]
}
},
{
name: 'subdirectory',
type: 'text',
help: 'Ruta base del sitio (p. ej. "/genia-l"). Se antepone a la ruta al construir la URL absoluta de los anclas en el structured data SEO (ItemList). Déjalo vacío si el sitio cuelga de la raíz',
label: 'Subdirectorio',
mandatory: false,
example_value: ''
},
{
name: 'siteUrl',
type: 'text',
help: 'Origen público del sitio (protocolo + host, sin barra final, p. ej. "https://lefebvre.es"). Se usa para las URLs absolutas del ItemList en el structured data SEO. Necesario en SSR tras un proxy, donde Astro.url resuelve al host interno (localhost). Si se deja vacío, se usa Astro.site o el host de la petición',
label: 'URL del sitio',
mandatory: false,
example_value: ''
}
]
};