# Negociación de contenido

Sirve la misma ruta como HTML, Markdown o JSON, según lo que pida el cliente. Útil para hacer las páginas legibles por agentes y scripts sin construir una API paralela.

### Sintaxis

```
$ vela enable content-negotiation
```

Esto configura [`sveltekit-negotiate`](https://github.com/nathancahill/sveltekit-negotiate) en `hooks.server.ts`, añade un hook `reroute` y coloca un componente `<Negotiate />` en el layout raíz. Una petición de `text/markdown` o `application/json` recibe entonces esa representación de la página en lugar de HTML.

No tiene dependencias — funciona con o sin backend, y se combina con el propio hook reroute de [i18n](/es/enable/i18n).

También añade una página de demostración en `/negotiate`, en el grupo `(public)` del proyecto, o directamente bajo `src/routes` en un proyecto que no tiene ese grupo. Su `+page.ts`, que define las meta etiquetas de la página, solo se escribe cuando el proyecto tiene `svelte-meta-tags`.

Un proyecto sin `src/hooks.server.ts` recibe uno. Si en su lugar tiene un `hooks.server.js`, ese archivo no se toca y se imprimen las líneas que añadir.

### Revertir

[`vela disable content-negotiation`](/es/disable/content-negotiation) elimina la configuración y los archivos generados.