Guías
Lee el contenido desde un sitio
Lee lo que publicas desde un Worker por un service binding, desde un sitio Nuxt, Astro, React o Vue, o desde cualquier lugar por HTTP con un token de lectura.
Lee el contenido desde un sitio
Tu sitio lee solo el contenido publicado: un borrador, o los cambios sin publicar de una entrada, nunca le llegan. Hay tres formas de leerlo.
Desde un Worker, por un service binding
Un Worker de la misma cuenta de Cloudflare enlaza el entrypoint Hollware de tu Worker de Hollware. Sin red y sin token:
// wrangler.jsonc del sitio
"services": [
{ "binding": "HOLLWARE", "service": "my-cms", "entrypoint": "Hollware" }
]const answer = await env.HOLLWARE.getEntry('my-site', 'blog', 'hello-world', 'en', {
formats: ['html'],
})
if (answer.outcome === 'ok') return new Response(answer.entry.html)El binding tiene seis métodos, todos de solo lectura: getEntry, listEntries, getTranslations, describeSite, search y listRedirects. getEntry entrega el Markdown, el documento de Comark o el HTML, según pida formats; con related: true, las entradas publicadas más cercanas por significado, y con references: true, las entradas que nombran sus campos de referencia (un autor, una serie: consulta Contratos). Sus imágenes llegan con su srcset y su tamaño (Imágenes), y los campos que la colección deja a Hollware (una fecha, el tiempo de lectura) llegan llenos en su frontmatter (Configura tu contenido).
const found = await env.HOLLWARE.search('my-site', 'how do I cache pages', { locale: 'en', limit: 5 })search encuentra entradas publicadas por sus palabras, por su significado o por ambos (mode: 'fulltext' | 'semantic' | 'hybrid', híbrido por defecto), y con passages: true la sección de cada una que coincidió, para que un modelo responda con ella. La búsqueda por significado necesita Workers AI y Vectorize: consulta Búsqueda y analítica.
Cuando una entrada cambia de slug, su ruta anterior se guarda como redirección. Respóndela con un 301:
const moved = await hollware.redirectFor('blog', 'en', slug) // createHollware() de cualquier paquete
if (moved) return Response.redirect(new URL(moved.path ?? moved.slug, request.url), 301)Desde un framework
Cada framework tiene un paquete que lee Hollware y renderiza lo que lee con tus propios componentes, con vistas previas de borradores e imágenes listas:
| Framework | Paquete | Guía |
|---|---|---|
| Nuxt | @hollware/nuxt | Nuxt |
| Astro | @hollware/astro | Astro |
| React Router, Next.js, TanStack Start | @hollware/react | React |
| Vue 3 sin Nuxt | @hollware/vue | Vue |
Cualquier otro JavaScript lee con @hollware/client, el paquete sobre el que se construyen todos: createHollware por un binding o un token de lectura, e imageOf para las imágenes del frontmatter.
Por HTTP, con un token de lectura
La API de lectura sirve las mismas lecturas en /v1:
curl -H "Authorization: Bearer hw_read_..." "http://localhost:5199/v1/blog/en/hello-world?formats=html"| Solicitud | Respuesta |
|---|---|
GET /v1/site | el sitio: locales, colecciones |
GET /v1/search?q&collection&locale&limit&mode&passages&minScore | las entradas publicadas que coinciden con q, las mejores primero |
GET /v1/{collection}?locale&tag&limit&cursor | una página de entradas publicadas |
GET /v1/{collection}/{locale}/{slug}?formats=&related=&references= | una entrada, con sus entradas relacionadas y las que nombra cuando se piden |
GET /v1/{collection}/translations/{group} | las entradas de un grupo de traducción |
GET /v1/redirects?collection&locale&limit&cursor | las rutas antiguas de las entradas que se movieron, y adónde van |
Las respuestas traen un ETag; devuélvelo en If-None-Match para recibir un 304. El documento OpenAPI está en /v1/openapi.json.
Un token de lectura (hw_read_) lee el contenido publicado por esta API y nada más, así que puede estar en un build, o incluso en un navegador:
npx hollware token create --read --label my-site # en el proyecto, para la base de datos local
npx hollware token create --read --label my-site --remote # para la desplegadaComo todo token, se imprime una sola vez: Hollware guarda solo su hash. En local, la API de lectura está en http://localhost:5199/v1; una vez desplegada, en la URL pública de tu Hollware. blog es la colección del starter: usa los nombres que entrega describe_site.
Para un navegador, lista los orígenes de tus páginas en el admin, en Sitio, como orígenes que leen desde el navegador, por ejemplo https://example.com, o haz que un agente los agregue con update_site. Se aplican al instante.