Referencia
Arquitectura
Motor HTML, temas, guide.json y pipeline editorial.
Arquitectura
Jíntia convierte contenido pedagógico estructurado en documentos HTML y PDF mediante un pipeline editorial propio.
Visión general
guide.json → guide-renderer.js → guide.html
│
vivliostyle-adapter.js
│
guide.pdf
La fuente canónica es siempre guide.json. El HTML se genera a partir de ella;
el PDF se genera a partir del HTML. Nunca se edita el HTML directamente.
Componentes principales
skill/scripts/guide-renderer.js
Motor de renderizado central. Lee guide.json, aplica el tema HTML
seleccionado y produce un HTML semántico con atributos data-pagination
que controlan el comportamiento de paginación en impresión.
Cada tipo de sección pedagógica se renderiza con su propio componente:
| Tipo | Clase CSS | Comportamiento de página |
|---|---|---|
orientation |
jintia-orientation |
atomic (no se divide) |
theory |
jintia-theory |
splittable |
concept |
jintia-concept |
atomic |
practice |
jintia-practice |
splittable |
warning |
jintia-warning |
atomic |
critical-error |
jintia-critical-error |
atomic |
figure |
jintia-figure |
atomic |
assessment |
jintia-assessment |
page-contained |
bibliography |
jintia-bibliography |
splittable |
skill/scripts/vivliostyle-adapter.js
Invoca Vivliostyle CLI como proceso externo mediante spawnSync. Nunca importa
la API interna de Vivliostyle (eso violaría la licencia AGPL). El adaptador
acepta las opciones --theme, --output y --engine.
skill/scripts/content-linter.js
Valida guide.json contra skill/schemas/guide.schema.json antes de renderizar.
Aplica las reglas JIN-CNT-*: orientación obligatoria, alt en figuras, claves
bibliográficas existentes, etc.
skill/scripts/html-linter.js
Valida el HTML generado mediante análisis DOM. Aplica las reglas JIN-HTM-*:
imágenes con alt, bloques con data-pagination, tablas con caption y thead.
skill/scripts/pdf-preflight.js
Analiza el PDF post-renderizado con Playwright. Detecta encabezados huérfanos, figuras separadas de su caption, tablas desbordadas y páginas con menos del 20 % de contenido.
skill/scripts/bibliography-manager.js
Integra Citation.js para leer archivos .bib y resolver citas inline. Reemplaza
el sistema anterior basado en biber.
Temas HTML
Los temas viven en skill/themes/. Cada tema es un directorio con:
jintia-clasico/
├── meta.json ← contrato del tema
├── tokens.css ← design tokens
├── components.css ← bloques pedagógicos
├── print.css ← @page y break-*
├── theme.css ← punto de entrada
└── vivliostyle.config.js ← configuración para Vivliostyle
El tema activo se declara en guide.json (metadata.theme) o en
skill/config/institution.json (activeTemplate).
Esquemas JSON
| Archivo | Valida |
|---|---|
skill/schemas/guide.schema.json |
Estructura de guide.json |
skill/schemas/visual-spec.schema.json |
Especificaciones de figuras |
skill/schemas/visual-manifest.schema.json |
Manifiesto del pipeline visual |
skill/config/institution.schema.json |
Configuración institucional |
Distribución
packages/
├── core/ ← fachada de skill/runtime/core
├── cli/ ← punto de entrada npx
├── rules/ ← reglas exportables
├── templates/ ← temas exportables
└── skill/ ← skill completa empaquetada
El paquete npm @charlie.act7/jintia expone el binario jintia que orquesta
todos los scripts anteriores desde un único punto de entrada.