Guías

Configura tu contenido

Da forma a tus sitios y colecciones en el admin o por MCP, con un esquema, rutas, reglas y una guía de estilo, sin desplegar.

Configura tu contenido

La estructura de tu contenido vive en la base de datos de Hollware, junto al contenido mismo: tus sitios, sus colecciones, el esquema del frontmatter de cada colección, sus rutas, sus reglas y su guía de estilo. La cambias en el admin, o haces que un agente la cambie por MCP, y se aplica al instante a cada guardado y publicación posterior. No se despliega nada.

Sitios y colecciones

Un despliegue sirve uno o más sitios. Un sitio tiene sus locales y sus colecciones; una colección es un tipo de entrada, como posts o páginas. hollware init crea tu primer sitio a partir de una plantilla, un blog salvo que pidas docs o una colección de páginas:

npx hollware init --site my-site --preset blog --locales en,es --local

Desde ahí, abre Colecciones en el admin o lee la estructura por MCP con get_structure.

El nombre de una colección son minúsculas, dígitos y guiones, como blog. Cinco nombres los ocupan rutas de la API de lectura y ninguna colección puede tenerlos: admin, assets, ops, search y site.

En el admin

  • Colecciones lista las colecciones del sitio y crea una a partir de una plantilla.
  • La página de una colección edita sus campos, sus rutas por locale, qué campos agrupan las traducciones, las etiquetas y el orden, sus reglas y su guía de estilo.
  • Sitio edita los locales, la URL pública, los orígenes que pueden leer desde el navegador, la guía de estilo del sitio y sus webhooks, crea un sitio nuevo y envía uno a la papelera.

Un cambio que afectaría entradas que el sitio ya tiene primero te dice cuáles y espera tu confirmación: una colección o un locale que quitas deja sus entradas fuera de alcance hasta que vuelva, y un esquema que rechaza algunas entradas las lista, para que las corrijas en su próximo guardado. Nunca se borra ninguna entrada.

Por MCP

Un agente con un token que tiene schema:admin, el scope de un dueño, da forma al sitio con las mismas reglas:

HerramientaQué hace
get_structurela definición del sitio, su versión y el catálogo de reglas
update_sitereemplaza la definición, en la versión leída
set_collectionagrega, reemplaza o quita una colección
create_sitecrea un sitio, contigo como dueño
delete_site, restore_siteenvían un sitio a la papelera y lo recuperan
make_webhook_secretcrea el secreto que firma los envíos de un webhook

Cada cambio se revisa completo antes de escribir nada, y cada problema vuelve en su ruta con su corrección. Uno que afecta entradas existentes responde needs_confirmation con lo que haría; el agente lo envía de nuevo con confirm: true cuando estés de acuerdo. Un cambio enviado con una versión desactualizada responde conflict, así dos personas nunca se sobrescriben.

El esquema

El esquema de una colección es el JSON Schema de su frontmatter. Un borrador cuyo frontmatter no se ajusta se guarda con un error en su veredicto, y no se puede publicar hasta que se ajuste. En el admin cada campo tiene un tipo (texto, fecha, opción, lista de textos, número, sí o no), sus límites y si es obligatorio; todo lo demás que diga el JSON Schema se mantiene tal cual.

  • Las traducciones comparten nombra el campo que une las entradas de un mismo post en cada locale.
  • Etiquetas nombra el campo que guarda las etiquetas, por las que filtra list_entries.
  • Más nuevas primero según nombra un campo de fecha: las listas muestran primero lo más reciente según él. Sin él, según la fecha de la primera publicación.

Algunos campos nadie debería escribirlos a mano. Quién lo escribe, en un campo de fecha o de número, deja que Hollware lo llene (automaticFields de la colección por MCP):

Hollware llenaConUn valor escrito
firstPublishedla fecha en que la entrada se publicó por primera vezgana, así el contenido traído de otro lado conserva sus fechas
lastModifiedla fecha de un cambio publicado después de esogana cuando es posterior
readingTimeminutos, a 200 palabras por minuto, contando también los bloques de códigose ignora
wordCountlas palabras del cuerpose ignora

Un campo así nunca es obligatorio, el formulario de una entrada no lo muestra, y describe_site lo marca readOnly para que los agentes no lo toquen. Un sitio lo lee lleno, en el frontmatter, y hollware export --published lo escribe en los archivos; el Markdown que guarda Hollware sigue siendo lo que se escribió. Un blog nuevo tiene su date llenado así.

Rutas

Las rutas dan la ruta de una entrada en cada locale, con :slug, como /blog/:slug/ y /es/blog/:slug/. Los enlaces entre entradas se revisan contra ellas, y cada locale del sitio necesita una.

Componentes

El cuerpo de una entrada es Markdown con componentes, escritos como ::name{prop="value"}. Cada colección declara los componentes que permite, con el JSON Schema de sus props, una descripción y un ejemplo; cualquier otro componente es un error. Los agentes los leen con describe_site.

Reglas

Las reglas vienen de un catálogo, cada una con sus parámetros, como un título de 60 caracteres como máximo salvo que haya un seoTitle; consulta Contratos.

Guías de estilo

La guía de estilo de un sitio y de cada colección es Markdown para quien escribe. Hollware no la revisa; los agentes la leen con describe_site. Mantenla breve y concreta.

Nota
Un proyecto creado antes de 0.8 tiene un hollware.config.ts. Su Worker traslada la configuración a la base de datos en su primera solicitud después de actualizar, y nunca vuelve a leerla: desde ese momento, da forma al sitio en el admin.