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']
})
Sources
Plusieurs dépôts, plusieurs versions, une seule liste
Une source, c’est un dépôt et les refs à en publier. duxt transforme la liste en une collection par version et par dépôt, et en préfixes d’URL qui les distinguent — décidés 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, at three of its tags.
{
repo: 'acme/api',
path: 'docs',
refs: [
{ branch: 'main', status: 'upcoming' },
{ tag: 'v2.0.0' },
{ tag: 'v1.4.0', status: 'eol' }
]
}
],
sourceOptions: { defaultRef: 'v2.0.0' }
Référence API
Un document OpenAPI, publié en pages
Pointez une source vers le fichier et duxt en construit un aperçu, une page par tag et une par opération — schémas dépliés, sécurité nommée, exemples dérivés. C’est une collection ordinaire, et c’est tout l’intérêt.
- La recherche les trouve, llms.txt les liste, le sitemap les porte.
- Versionnée comme la prose : le sélecteur passe d’une version d’un endpoint à l’autre.
- À côté de votre Markdown — une page d’opération peut porter sa propre prose.
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 — 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, publié une seconde fois dans les formes qu’une machine lit : un index à llms.txt, tout le site à llms-full.txt, chaque page en Markdown, et une route MCP qu’un assistant peut interroger.
- Sortie de build, pas un service à l’exécution — les fichiers sont sur le CDN avec les pages.
- 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 — 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
Un tag devient une version, et le sélecteur reste sur la page que vous lisez.
Localisé d'origine
L'interface est traduite ; vos pages portent un préfixe de langue et un hreflang.
Natif Git, pas réinventé
Branches, tags, dépôts privés et cache viennent de Content v3 lui-même.
shadcn-vue
Les composants sont copiés, pas importés. En restyler un, c'est modifier un fichier.
Des composants dans le Markdown
MDC est livré avec Content — appelez un composant Vue en syntaxe de bloc.
Lisible par une machine
llms.txt et une route MCP sur le même contenu, prévues comme sortie de build.