Vista previa técnicaDanos tu opinión

Cloudflare

Actualizado el 12 nov 2026

Cloudflare Workers puede servir directamente un directorio de recursos estáticos: sin cómputo aparte ni capa SPA. Así se publica livemark.dev, y la misma estructura de wrangler.jsonc funciona para cualquier sitio Livemark.

Compila el sitio

livemark build

La salida queda en .livemark/build/client/.

Configura wrangler.jsonc

Coloca esto en la raíz de tu proyecto:

wrangler.jsonc
{
  "name": "my-docs",
  "compatibility_date": "2026-04-01",
  "workers_dev": true,
  "assets": {
    "directory": ".livemark/build/client",
  },
}

Dos campos hacen el trabajo pesado:

CampoPropósito
assets.directoryApunta Wrangler a la salida de compilación de Livemark. Cada archivo se sirve tal cual.
workers_devTe da una URL de vista previa <name>.<account>.workers.dev mientras pruebas.

Despliega desde tu máquina

livemark build
wrangler deploy

La primera ejecución te pide wrangler login para autorizar el acceso a tu cuenta de Cloudflare.

Despliega con GitHub Actions

.github/workflows/deploy.yaml
name: deploy

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: pnpm/action-setup@v4
      - uses: actions/setup-node@v4
        with:
          cache: pnpm
          node-version: 24
      - run: pnpm install
      - run: pnpm livemark build
      - uses: cloudflare/wrangler-action@v3
        with:
          apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
          accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}

Crea un token de API con alcance limitado en My Profile → API Tokens (la plantilla "Edit Cloudflare Workers" concede exactamente lo que necesitas) y guarda ambos valores como secretos del repositorio.

Dominio personalizado

Añade un bloque routes cuando tu zona esté en Cloudflare:

wrangler.jsonc
{
  "name": "my-docs",
  "compatibility_date": "2026-04-01",
  "assets": { "directory": ".livemark/build/client" },
  "routes": [{ "pattern": "docs.example.com", "custom_domain": true }],
}

custom_domain: true indica a Cloudflare que aprovisione un dominio gestionado: DNS, certificado y ruta se gestionan por ti. Define site con el mismo dominio en livemark.config.ts para que las URLs absolutas del sitemap y los feeds RSS coincidan.

Markdown para agentes

Los agentes de IA piden una página como Markdown enviando Accept: text/markdown. Los recursos estáticos siempre responden con HTML, así que añade a tu zona una URL Rewrite Rule que dirija esas peticiones al gemelo Markdown de la página. Las URL Rewrite Rules están disponibles en todos los planes, incluido el gratuito, y el sitio sigue siendo totalmente estático.

En el panel, abre tu dominio, ve a Rules → Overview → Create rule → URL Rewrite Rule y rellena:

CampoValor
Rule nameMarkdown for agents
If incoming requests matchCustom filter expression (abajo)
PathRewrite to → Dynamic → concat(http.request.uri.path, "index.md")
QueryPreserve
Filter expression
any(http.request.headers["accept"][*] contains "text/markdown") and ends_with(http.request.uri.path, "/")

Las URLs de las páginas terminan en /, así que la regla solo afecta a las páginas. Una petición a /guide se redirige primero a /guide/ y luego se reescribe. Los recursos estáticos sirven los archivos .md como text/markdown, así que el tipo de respuesta no necesita ninguna regla adicional.

Ver también

Hecho con ❤ y Livemark