Contenido para personas y herramientas
HTML legible, guías en Markdown y un catálogo JSON generado desde las mismas fuentes.
Archivos estáticos de lectura
La web se publica íntegramente como archivos. No tiene servidor de aplicación, Worker ni API dinámica. Las peticiones con filtros no se procesan en el alojamiento. Descarga el catálogo y filtra en tu cliente; el buscador de la web sigue ese mismo modelo.
- /data/catalog.json: catálogo completo, ordenado por identificador estable.
- /data/places/restaurant-tere.json: ejemplo de ficha.
- /data/activities/activity-tabarkeras.json: ejemplo de traslado.
- /data/guides/primera-visita.json: guía con su cuerpo y fuentes.
- /openapi.json: contrato OpenAPI 3.1.1 de los recursos implementados.
- /llms.txt: índice editorial siguiendo la propuesta llms.txt.
Ejemplo de petición
curl 'https://tabarca.net/data/places/restaurant-tere.json'La siguiente es la respuesta completa del archivo generado en esta edición:
{
"id": "restaurant-tere",
"slug": "tere",
"title": "Restaurante Tere",
"summary": "Un restaurante de la isla con carta, contacto y condiciones de reserva en su web oficial.",
"category": "Restaurante",
"type": "restaurant",
"language": "es-ES",
"url": "https://tabarca.net/restaurantes/tere/",
"path": "/restaurantes/tere/",
"body": "Restaurante Tere publica su carta y un canal de contacto directo. Su web informa de una señal para confirmar reservas y de condiciones de cancelación; consulta el texto vigente antes de pagar. Si quieres pedir un plato concreto, confírmalo junto con la hora de llegada y el tiempo que necesitas para volver al barco. Esta ficha no procede de una experiencia personal.",
"publishedAt": "2026-09-13",
"modifiedAt": "2026-09-13",
"checkedAt": "2026-09-13",
"sources": [
{
"title": "Restaurante Tere: web y contacto",
"url": "https://restaurantetere.com/",
"publisher": "Restaurante Tere",
"checkedAt": "2026-09-13"
}
],
"hero": "pueblo",
"tags": [
"Web oficial",
"Reserva directa"
],
"practical": [
"Carta y condiciones: consultar en la web oficial.",
"Horarios, precio por comensal y disponibilidad: no confirmados.",
"Reserva y pago directamente con el restaurante."
],
"website": "https://restaurantetere.com/",
"phone": "+34686531656",
"address": "Isla de Tabarca, Alicante"
}Buscar y paginar en un cliente
const response = await fetch('https://tabarca.net/data/catalog.json');
if (!response.ok) throw new Error('No se pudo cargar el catálogo');
const { data } = await response.json();
const places = data.filter(item => item.type === 'restaurant');
const page = 1;
const limit = 10;
const result = places.slice((page - 1) * limit, page * limit);El buscador del proyecto comparte una función pura de consulta con las pruebas. Normaliza acentos, busca todas las palabras y valida los límites de longitud y paginación. Añadir ?q=barco al archivo JSON no realiza una búsqueda: la respuesta seguirá siendo el catálogo completo.
HTML, Markdown y URL principal
Cada guía enlaza su versión /guias/slug/index.md mediante rel="alternate". El Markdown contiene el mismo cuerpo editorial, sin navegación ni publicidad, junto con su URL canónica HTML, fuentes y fechas. Lee un ejemplo.
La URL HTML es la principal. Cada Markdown incluye su URL HTML canónica. Las cabeceras HTTP de los archivos se configuran en el alojamiento.
Fechas, límites y errores
Los datos se actualizan al volver a compilar. No son horarios, reservas ni disponibilidad en tiempo real. checkedAt documenta la fecha de consulta de una fuente. Los borradores no se exportan.
El catálogo inicial contiene 35 registros. La comprobación previa limita el archivo a 1 MB para mantener la descarga razonable. Si crece, se deberá dividir en archivos estáticos por categoría; no se simulará paginación de servidor.
Un identificador inexistente devuelve la página 404 del alojamiento, no un error JSON. No hay respuestas 400 por filtros porque no se aceptan consultas dinámicas. El acceso es público y sin autenticación; las cabeceras CORS permiten lectura. La caché y cualquier protección adicional frente a abuso corresponden al CDN.
Alcance y reutilización
Los formatos publicados permiten consultar el contenido desde otras herramientas. Conserva las referencias y fechas al reutilizar los datos. Las condiciones de reutilización están en el aviso legal.