Une documentation versionnée, depuis les dépôts que vous avez déjà
duxt est une couche Nuxt : étendez-la et votre dossier docs/ devient un site, thème, recherche, référence d'API et llms.txt compris. Pointez-la vers d'autres dépôts, ou vers des tags du même, et chacun devient une version.
- ligne de configuration
- 1
- langues fournies
- 7
- sous licence, open source
- MIT
Démo en direct
Installation
Une ligne, et le dossier devient un site
duxt est une couche Nuxt : l’étendre apporte le thème, les pages, les composants et les étapes de build d’un coup, et laisse chacun remplaçable.
- Aucun générateur, rien à éjecter : votre dépôt garde ses propres fichiers.
- Remplacez un composant en plaçant le vôtre au même chemin.
- Se compile en site statique, déployable partout où Nuxt va.
export default defineNuxtConfig({
extends: ['@kirchdev/duxt']
})
export default defineAppConfig({
duxt: {
title: 'Acme',
// The folder you already write in.
sources: [{ path: 'docs' }]
}
})
Sources
Plusieurs dépôts, plusieurs versions, une seule liste
Une source est un dépôt et les versions, tags ou branches à publier. duxt transforme la liste en une collection par version et dépôt et en préfixes qui les distinguent, le tout au build.
- Clonage, authentification des dépôts privés et cache viennent de Content v3.
- Une source unique n’a besoin d’aucun préfixe : un segment à valeur unique ne distingue rien.
- Le sélecteur reste sur la page que vous lisez, et le dit quand elle n’y existe pas.
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
Référence générée
Une référence depuis les artefacts que vous livrez déjà
OpenAPI devient des pages d’opérations et de schémas, Bruno des requêtes et téléchargements, et tfplugindocs une référence de provider. Tout reste une collection Content ordinaire.
- OpenAPI fournit opérations, schémas, exemples et modèles de sécurité.
- Bruno conserve dossiers, documentation et variables, avec un téléchargement expurgé.
- tfplugindocs conserve catégories et titres du provider sans aplatir l’arbre Markdown.
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.
Essayer
Un client qui envoie la vraie requête
Chaque page d’opération embarque un client. Remplissez les paramètres, modifiez le corps face à son schéma, envoyez depuis votre navigateur, et lisez la réponse à côté de l’exemple qui l’aurait produite.
- Sept exemples d’origine, douze fournis, ou le vôtre, réécrits à la frappe.
- L’éditeur de corps est CodeMirror, chargé à la demande : une page sans endpoint n’en télécharge rien.
- Votre jeton reste dans votre navigateur : il n’y a ici aucun serveur à qui l’envoyer.
Envoyer une requête
Dans votre stack
La même requête, dans votre langage
Pas un exemple de requête comme celle du dessus, mais cette requête-là. Le serveur choisi, le jeton saisi et le corps modifié, réécrits à chaque frappe dans le client où vous allez la coller.
- Un seul composant : l’exemple et le bouton ne peuvent pas diverger.
- Ajoutez les vôtres avec `requestSamples`, ou retirez ceux que vos lecteurs n’utilisent pas.
Exemple de requête
curl '/demo/echo' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer demo-token' \
-d '{
"reference": "HB-1042",
"mode": "sea"
}'Lecteurs machine
Écrite aussi pour le modèle qui la lit
Le même contenu sous des formes lisibles par une machine : index dans llms.txt, versions par défaut dans llms-full.txt, chaque page en Markdown et route MCP pour lister, chercher et lire.
- Les routes texte peuvent être prérendues ; MCP sert les mêmes collections à l’exécution.
- Chaque page a un « copier en Markdown » et un lien qui l’ouvre dans un assistant.
- La route MCP sert les mêmes collections que le site interroge : une source, deux lecteurs.
Fonctionnalités
Étendre, pas générer
Une ligne de configuration apporte thème, pages et composants, et chaque fichier reste remplaçable.
Les sources comme une liste
Une déclaration par source au lieu d'une collection par version et par dépôt.
Des versions commutables
Découvrez chaque version ou une par ligne mineure ou majeure ; le sélecteur garde votre page.
Localisé d'origine
Fallbacks de locale, hreflang et interface sensible au sens ; ajoutez RTL sans forker le thème.
Vérifié avant le déploiement
Liens morts, ancres absentes et pages non traduites arrêtent le build ou y sont signalés.
shadcn-vue
Les composants sont copiés, pas importés. En restyler un, c'est modifier un fichier.
Navigation issue du contenu
Barre latérale, fil d’Ariane, sommaire et liens précédent ou suivant partagent le même arbre.
Lisible par une machine
llms.txt, Markdown par page et quatre outils MCP sur le même contenu.