El objetivo del diseño: fuente una vez, implementación completa HTML

Jivaro almacena cada elemento editorial como metadatos estructurados más un fragmento HTML de solo cuerpo. Un script de Node propiedad del repositorio combina esas fuentes con plantillas compartidas, genera páginas estáticas completas, actualiza cada índice dependiente y valida el resultado antes de su publicación.

El navegador recibe HTML normal. No necesita CMS API, consulta de base de datos ni búsqueda de contenido del lado del cliente para mostrar el artículo.

El modelo fuente

content/resources/<slug>/
  article.json
  body.html

content/news/<year>/<slug>/
  article.json
  body.html

article.json posee título, descripción, fechas, taxonomía, héroe, FAQ, fuentes, enlaces relacionados, relaciones de aplicaciones, indexación y URL heredadas. body.html comienza en H2 y excluye Chrome de página global.

Un valor, una fuente.

El título no se repite manualmente en la página, el centro, el índice de búsqueda, el mapa del sitio, el feed y el esquema.

¿Por qué HTML solo para carrocería?

Un sistema sin nueva dependencia necesita un formato que el navegador y el generador ya comprendan. Los fragmentos HTML evitan importar un analizador Markdown o mantener un analizador parcial. La desventaja son las estrictas reglas de creación: no hay documento completo, H1, estilo global, script o sección administrada por generador en el cuerpo.

El generador determinista

  1. Cargue datos del sitio, taxonomía, aplicaciones, software y contenido.
  2. Valida campos, fechas, categorías, rutas, imágenes y fuentes.
  3. Asigne ID de encabezado y genere TOC.
  4. Representar el diseño del artículo o de las noticias.
  5. Genere FAQ, fuentes, lecturas relacionadas, tarjetas de aplicaciones y anuncios.
  6. Genere centros y páginas de categorías.
  7. Genere mapas del sitio, índices de búsqueda, feeds, redirecciones, gráficos de contenido y auditorías.
  8. Escriba la salida completa en public/.

Ejecutar la misma compilación dos veces sin cambios en el código fuente no debe producir ninguna diferencia.

¿Por qué se confirma el HTML generado?

  • GitHub contiene el sitio web exacto al que sirve Cloudflare.
  • Cloudflare no instala ningún marco de publicación.
  • Una compilación remota fallida no puede borrar rutas.
  • Los revisores pueden inspeccionar los metadatos finales y HTML.
  • La reversión es una reversión de Git.
  • Un archivo de repositorio sigue siendo desplegable.

La fuente sigue siendo autorizada; Los archivos generados nunca se editan manualmente.

Plantillas compartidas y migración gradual

Las plantillas poseen el shell del documento, la navegación, los metadatos, los datos estructurados, el diseño del artículo, TOC, FAQ, las fuentes, las tarjetas relacionadas y el pie de página. Un normalizador de páginas estáticas aplica recursos compartidos, enlaces de omisión, dimensiones de imágenes, enlaces seguros, reparación de encabezados, estado del catálogo y manejo de ofertas planificadas a páginas más antiguas.

Cada índice proviene del mismo gráfico.

MetadataRegistro canónico

Ruta, título, fechas, taxonomía, imagen, indexación, fuentes, relaciones.

Generatorsalida derivada

Página, tarjeta central, elemento de búsqueda, mapa del sitio URL, entrada de feed, esquema, redireccionamiento.

QCComprobaciones cruzadas

Toda referencia generada debe resolver y estar de acuerdo.

El control de calidad es la publicación.

npm run verificar limpia metadatos y activos retirados, crea, normaliza páginas estáticas, comprueba rutas/activos/metadatos/esquemas/feeds/redirecciones y prueba el diseño del catálogo. Rechaza borradores en resultados públicos, identificaciones duplicadas, índices de contenido rotos, archivos obsoletos, propietarios de desplazamientos competitivos, imágenes optimizadas de gran tamaño y archivos adjuntos accidentales.

Cloudflare es el host, no la base de datos de contenido

Cloudflare Pages publica el directorio public/ confirmado. Las funciones manejan redirecciones aprobadas y rutas de afiliados. Mover hosts requeriría adaptar encabezados y funciones, no migrar una base de datos de contenido.

Lo que este sistema no proporciona

  • Un editor de navegador visual.
  • Permisos editoriales multiusuario.
  • Borradores de flujos de trabajo alojados de forma predeterminada.
  • Consultas o personalización de bases de datos.
  • Juicio editorial automático.

Jivaro eligió un sistema más estrecho optimizado para portabilidad, salida determinista y control directo.

El flujo de trabajo de publicación

  1. Crea un shell de origen.
  2. Escribir y verificar metadatos y cuerpo.
  3. Agregue héroe y variantes optimizadas.
  4. Agregue fuentes estructuradas, FAQ y relaciones.
  5. Establecer borrador como falso.
  6. Ejecute npm, ejecute verificar.
  7. Utilice publish.ps1 para confirmar, cambiar la base, reconstruir y enviar.
  8. Espere a Cloudflare y ejecute QC en vivo.

Recuperación y reversión de fallas

El script de publicación se niega a enviar cuando falla la generación, el QC estático, el diseño QC, las comprobaciones de Git o la reconstrucción determinista. Los archivos públicos anteriores permanecen en Git hasta que una confirmación verificada los reemplace. Si la producción es incorrecta, el operador puede revertir la confirmación y dejar que Cloudflare entregue la salida generada anteriormente.

Live QC luego solicita rutas canónicas, redirecciones de host alternativo, redirecciones heredadas y un marcador de compilación. Esto detecta la clase de error en la que el repositorio es correcto pero el host ofrece una implementación anterior o una plataforma diferente.

Cuándo Jivaro adoptaría un CMS

Un CMS se vuelve atractivo cuando los autores no técnicos necesitan edición visual, roles y permisos, estados de flujo de trabajo, vistas previas alojadas, programación o reutilización estructurada a una escala que excede la revisión del repositorio. La decisión migratoria incluiría garantías de exportación y un respaldo estático. Evitar un CMS no es una ideología; es la compensación actual para este equipo y este sitio.

Preguntas frecuentes

¿Jivaro muestra artículos en el navegador?

No. El HTML estático completo se genera antes de la implementación.

¿Por qué se generó el compromiso HTML?

Hace que el repositorio sea implementable, simplifica la reversión y reduce la dependencia de la compilación remota.

¿Por qué fragmentos HTML en lugar de Markdown?

El diseño sin nueva dependencia evita agregar o mantener un analizador Markdown.

¿Deben editarse directamente las páginas generadas?

No. Edite los metadatos de origen, el cuerpo, las plantillas o la lógica del generador y reconstruya.

Fuentes y referencias