Saltar al contenido
duxt
v0.9.0 publicada

Documentación versionada, desde los repositorios que ya tienes

duxt es una capa de Nuxt: extiéndela y tu carpeta docs/ se convierte en un sitio, con tema, búsqueda, referencia de API y llms.txt. Apúntala a otros repositorios, o a etiquetas del mismo, y cada uno se convierte en una versión.

línea de configuración
1
idiomas incluidos
7
con licencia, código abierto
MIT

Demo en vivo

http://localhost/es-ES/getting-started
Abrir

Configuración

Una línea, y la carpeta es un sitio

duxt es una capa de Nuxt: extenderla aporta el tema, las páginas, los componentes y los pasos de compilación a la vez, y deja todo reemplazable.

  • Sin generador y sin nada que expulsar: tu repositorio conserva sus archivos.
  • Sobrescribe un componente colocando el tuyo en la misma ruta.
  • Compila a un sitio estático: despliégalo donde vaya Nuxt.
Instalación
export default defineNuxtConfig({
  extends: ['@kirchdev/duxt']
})
export default defineAppConfig({
  duxt: {
    title: 'Acme',
    // The folder you already write in.
    sources: [{ path: 'docs' }]
  }
})

Fuentes

Varios repositorios, varias versiones, una lista

Una fuente es un repositorio y las versiones, tags o ramas que publicar. duxt convierte la lista en una colección por versión y repositorio y en los prefijos que las separan, todo durante la build.

  • Clonado, autenticación de repos privados y caché son del propio Content v3.
  • Una fuente única no necesita prefijo: un segmento con un solo valor no distingue nada.
  • El selector permanece en la página que lees, y avisa cuando allí no existe.
URLs y versiones
sources: [
  // The repository you are standing in.
  { path: 'docs' },

  // Another one: retain the newest patch in every minor line.
  {
    repo: 'acme/api',
    path: 'docs',
    releases: { select: 'minor' },
    refs: [{ branch: 'main', status: 'upcoming' }]
  }
]
# What the build publishes from the list beside this.

/guides/deploying          # this repository, no prefix
/api/guides/retries        # acme/api at the newest selected release
/api/main/guides/retries   # the branch, marked "upcoming"
/api/v1.4.0/guides/retries # another retained minor line

Referencia generada

Referencia desde los artefactos que ya publicas

OpenAPI se convierte en páginas de operaciones y schemas, Bruno en peticiones y descargas, y tfplugindocs en referencias de provider. Todo sigue siendo una colección Content corriente.

  • OpenAPI aporta operaciones, schemas, ejemplos y modelos de seguridad.
  • Bruno conserva carpetas, documentación y variables y ofrece una descarga depurada.
  • tfplugindocs conserva categorías y encabezados del provider sin aplanar el árbol Markdown.
Cómo funciona la referencia generada
openapi: 3.1.0
info:
  title: Acme API
  version: 2.4.0
paths:
  /widgets:
    get:
      operationId: listWidgets
meta {
  name: List widgets
  type: http
  seq: 1
}

get {
  url: {{baseUrl}}/widgets
  body: none
  auth: inherit
}
---
page_title: acme_widget Resource
subcategory: Widgets
---

# acme_widget (Resource)

Creates and manages an Acme widget.

Pruébalo

Un cliente que envía la petición real

Cada página de operación lleva un cliente. Rellena los parámetros, edita el cuerpo contra su esquema, envíalo desde tu navegador y lee la respuesta junto al ejemplo que la habría producido.

  • Siete ejemplos de fábrica, doce incluidos, o uno propio: reescritos mientras escribes.
  • El editor del cuerpo es CodeMirror, cargado bajo demanda: una página sin endpoint no descarga nada de él.
  • Tu token se queda en tu navegador: aquí no hay servidor al que enviarlo.
Cómo funciona el cliente

Enviar una solicitud

Autenticación

Lo que escriba aquí permanece en esta pestaña, no se guarda y solo se envía al servidor que eligió.

La solicitud la envía su navegador, directamente a ese servidor.

En tu stack

La misma petición, en tu propio lenguaje

No un ejemplo de una petición como la de arriba: esa petición. El servidor que elegiste, el token que escribiste y el cuerpo que editaste, reescritos en cada pulsación al cliente donde vayas a pegarlo.

  • Un solo componente: el ejemplo y el botón no pueden discrepar.
  • Añade los tuyos con `requestSamples`, o quita los que tus lectores no usan.
Ejemplos de petición

Ejemplo de petición

curl '/demo/echo' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer demo-token' \
  -d '{
  "reference": "HB-1042",
  "mode": "sea"
}'

Lectores automáticos

Escrita también para el modelo que la lee

El mismo contenido en formatos legibles por máquinas: índice en llms.txt, versiones predeterminadas en llms-full.txt, cada página en Markdown y una ruta MCP para listar, buscar y leer.

  • Las rutas de texto pueden prerenderizarse; MCP sirve las mismas colecciones en ejecución.
  • Cada página tiene un «copiar como Markdown» y un enlace que la abre en un asistente.
  • La ruta MCP sirve las mismas colecciones que consulta el sitio: una fuente, dos lectores.
Lectores automáticos
http://localhost/llms.txt
Abrir

Funcionalidades