Structure du projet
Structure globale
Docus est un layer Nuxt qui étend votre application Nuxt standard avec des fonctionnalités de documentation. Cela vous donne la flexibilité d'un projet Nuxt classique.
Lorsque vous créez un nouveau projet Docus avec npx create-docus my-docs, voici la structure de base:
my-docs/
├── content/ # Votre contenu markdown
│ ├── index.md # Page d'accueil
│ └── docs/ # Pages de documentation
├── public/ # Ressources statiques
└── package.json # Dépendances et scripts
Vous pouvez toujours utiliser n'importe quelle fonctionnalité ou fichier d'un projet Nuxt classique :
my-docs/
├── nuxt.config.ts # Configuration Nuxt (ajouter des modules, composants...)
├── app/ # Répertoire app
├── app.config.ts # App configuration
│ ├── components/ # Composants (ajoutez vos propres composants)
│ ├── layouts/ # Layouts (ajoutez vos propres layouts)
│ └── pages/ # Pages (ajoutez vos propres pages)
└── server/ # Code côté serveur (ajoutez votre propre code côté serveur)
Répertoire content/
C'est ici que vous rédigez vos pages en Markdown. Docus génère automatiquement les routes basées sur votre structure de fichiers.
Structure monolingue :
content/
├── index.md
├── getting-started.md
└── guide/
├── introduction.md
└── configuration.md
Structure multilingue (avec i18n) :
content/
├── en/
│ ├── index.md
│ └── guide/
│ └── introduction.md
└── fr/
├── index.md
└── guide/
└── introduction.md
Répertoire public/
Les fichiers contenus dans le répertoire public/ sont servis à la racine et ne sont pas modifiés par le processus de build. C'est ici que vous pouvez placer vos images, icônes et autres ressources statiques.
package.json
Ce fichier contient toutes les dépendances et scripts de votre application. Le package.json d'une application Docus est vraiment minimal et ressemble à :
{
"name": "my-docs",
"scripts": {
"build": "nuxt build --extends docus",
"dev": "nuxt dev --extends docus",
},
"dependencies": {
"docus": "latest",
"better-sqlite3": "^12.2.0",
"nuxt": "^4.0.0"
}
}
nuxt.config.ts
Ce fichier n'est pas obligatoire pour démarrer une application Docus.
Vous pouvez ajouter des modules supplémentaires à votre fichier de configuration Nuxt :
export default defineNuxtConfig({
extends: ['@nuxtjs/plausible']
})
app.config.ts
Ce fichier n'est pas obligatoire pour démarrer une application Docus.
nuxt.config.ts doit être existant pour surcharger votre app config. Sans le fichier Nuxt config, vos surcharges ne seront pas prises en compte.C'est ici que vous pouvez configurer Docus pour l'adapter à votre marque, gérer le SEO, définir votre locale et adapter les liens et réseaux sociaux.
export default defineAppConfig({
docus: {
locale: 'fr', // Définir votre locale monolingue
},
seo: {
title: 'Ma Documentation',
description: 'Ma super documentation',
},
// ... autres configurations
})
Structure complète d'un projet Nuxt
Puisque Docus est un layer Nuxt, vous pouvez utiliser n'importe quelle fonctionnalité d'un projet Nuxt standard :
nuxt.config.ts doit être existant pour surcharger votre app Nuxt. Sans le fichier Nuxt config, vos surcharges ne seront pas prises en compte.my-docs/
├── app/ # Répertoire app (optionnel)
│ ├── app.config.ts # App configuration
│ ├── components/ # Composants Vue personnalisés
│ ├── layouts/ # Layouts personnalisés
│ ├── pages/ # Pages Vue personnalisées (en dehors du contenu)
│ ├── composables/ # Composables Vue
│ └── middleware/ # Middleware de route
├── server/ # Code côté serveur
│ └── api/ # Routes API
├── plugins/ # Plugins Nuxt
├── middleware/ # Middleware global
└── modules/ # Modules Nuxt personnalisés