Plantillas y temas

En docmd, las Plantillas definen la estructura HTML fundamental, la disposición de la interfaz, los parciales EJS y las ranuras (slots) de componentes para su documentación.

Estructuras de diseño frente a esquemas de color
  • Plantillas: Controlan la arquitectura estructural en HTML (encabezado, barra lateral, tabla de contenidos, pie de página, anuncios, parciales EJS).
  • Esquemas de color: Aportan temas visuales mediante CSS (default, sky, ruby, retro) que se superponen directamente sobre las plantillas.

Una plantilla es un paquete npm que declara capabilities: ['template'] y distribuye archivos de diseño .ejs y paquetes de recursos personalizados. El solucionador de @docmd/ui utiliza una cadena de prioridades con retroceso ordenado, asegurando que cualquier ranura no especificada recurra sin fisuras al diseño por defecto.

Guía de inicio rápido

1. Instalar un paquete de plantilla

npx @docmd/core add summer

2. Habilitar la plantilla en la configuración

Defina theme.name en docmd.config.json. docmd detecta automáticamente si el nombre corresponde a un esquema de color integrado (default, sky, ruby, retro) o a un paquete estructural de plantilla (summer, etc.):

docmd.config.json
{
  "theme": {
    "name": "summer"
  }
}

Cada página se procesará a partir de ese momento con la estructura de summer. Las ranuras no especificadas recurrirán automáticamente a los parciales estándar de @docmd/ui.

Esquemas de color integrados (Plantilla por defecto)

La plantilla predeterminada incluye cuatro paletas de color CSS seleccionadas que pueden activarse asignando theme.name:

Esquema de color Recomendado para Estética visual
default Documentación minimalista Paleta neutra, limpia y ligera
sky Documentación de producto Estándar corporativo moderno de alto contraste
ruby Identidad de marca Tipografías con serifa en títulos y acentos vivos
retro Herramientas para desarrolladores Tipografía monoespaciada con tonos verdes fósforo
Superposición de esquemas de color en plantillas externas

Para aplicar un esquema de color CSS específico (sky, ruby, retro) sobre una plantilla estructural personalizada, defina theme.template junto a theme.name:

docmd.config.json
{
  "theme": {
    "name": "sky",
    "template": "summer"
  }
}

Esto genera la estructura de summer vestida con la paleta de color de sky.

3. Anulaciones de plantilla por página

Cambie de plantilla para páginas individuales utilizando el frontmatter:

---
title: "Historial de versiones"
template: "template-changelog"
---

# Historial de versiones

Cadena de prioridades de resolución

Al compilar cada página, docmd evalúa las rutas de plantillas en este orden descendente:

Prioridad Origen Ejemplo de sintaxis
1 frontmatter.template template: "template-changelog"
2 config.templates[patrón] "blog/*": "template-blog"
3 config.theme.template (Explícito) "template": "summer"
4 config.theme.name (Autopromovido) "name": "summer"
5 Retirada por defecto Plantillas .ejs incluidas en @docmd/ui

Los nombres default, sky, ruby y retro están reservados para los temas de color CSS. Cualquier otro valor en theme.name se interpreta como el nombre de un paquete de plantilla.

Ranuras de diseño admitidas

Las plantillas pueden anular cualquiera de las 12 ranuras de interfaz:

Ranura Parcial por defecto Propósito técnico
layout templates/layout.ejs Estructura principal del documento HTML
404 templates/404.ejs Página de error no encontrado
toc templates/toc.ejs Tabla de contenidos de navegación derecha
navigation templates/navigation.ejs Árbol de navegación lateral principal
footer templates/partials/footer.ejs Pie de página del sitio
menubar templates/partials/menubar.ejs Barra superior de navegación
options-menu templates/partials/options-menu.ejs Menú de controles de búsqueda, tema y perfil
project-switcher templates/partials/project-switcher.ejs Conmutador multiproyecto para monorrepositorios
version-dropdown templates/partials/version-dropdown.ejs Selector desplegable de versiones
language-switcher templates/partials/language-switcher.ejs Selector desplegable de idioma
banner templates/partials/banner.ejs Barra global de anuncios del sitio
cookie-consent templates/partials/cookie-consent.ejs Modal de consentimiento de cookies
Aislamiento en páginas sin estilo

Las páginas configuradas con noStyle: true omiten por completo las plantillas activas y se renderizan exclusivamente con templates/no-style.ejs.

Orden de la cascada

Cuando se combinan plantillas y hojas de estilo, los estilos se cargan en un orden predecible de tres etapas:

  1. Núcleo y Tema: Los estilos fundacionales y esquemas de color cargan primero.
  2. Plantillas y Plugins: Las reglas de disposición estructural y los recursos de plugins cargan a continuación.
  3. CSS y JS Personalizados: Sus archivos customCss y customJs cargan al final, teniendo siempre prioridad sobre las plantillas.

Para anular las reglas por defecto de una plantilla, añada sus declaraciones en theme.customCss.

Localización de plantillas

Las plantillas reciben el código del idioma activo durante el renderizado. Las cadenas de texto localizadas se resuelven mediante el asistente t(key) apoyándose en los archivos assets/i18n/<idioma>.json.

Recursos relacionados