Aller au contenu principal
Version : 2.x

Configuration

Docusaurus a une approche unique sur les configurations. Nous vous encourageons à rassembler les informations de votre site en un seul endroit. Nous gardons les champs de ce fichier et facilitons l'accÚs à cet objet de données à travers votre site.

Le fait de conserver un docusaurus.config.js bien maintenu vous aide, ainsi que vos collaborateurs et vos contributeurs open source, à pouvoir vous concentrer sur la documentation tout en étant en mesure de personnaliser le site.

Qu'est-ce qui va dans un docusaurus.config.js ?​

Vous ne devriez pas avoir Ă  Ă©crire votre docusaurus.config.js Ă  partir de zĂ©ro, mĂȘme si vous dĂ©veloppez votre site. Tous les templates sont fournis avec un docusaurus.config.js qui inclut les valeurs par dĂ©faut pour les options courantes.

Toutefois, il peut ĂȘtre utile d'avoir une comprĂ©hension de haut niveau de la façon dont les configurations sont conçues et mises en Ɠuvre.

La configuration de haut niveau de Docusaurus peut ĂȘtre classĂ©e en plusieurs catĂ©gories :

Pour une référence exacte à chacun des champs configurables, vous pouvez vous référer à la référence API docusaurus.config.js.

MĂ©tadonnĂ©es du site​

Les métadonnées du site contiennent les métadonnées globales essentielles telles que title, url, baseUrl et favicon.

They are used in several places such as your site's title and headings, browser tab icon, social sharing (Facebook, X) information or even to generate the correct path to serve your static files.

Configurations de dĂ©ploiement​

Les configurations de déploiement telles que projectName, organizationName et optionnellement deploymentBranch sont utilisées lorsque vous déployez votre site avec la commande deploy.

Il est recommandé de vérifier la documentation de déploiement pour plus d'informations.

Configurations de thùme, plugin et preset​

Indique les thÚmes, les plugins et les presets de votre site dans les champs respectifs themes, plugins et presets. Il s'agit généralement de paquets npm :

docusaurus.config.js
module.exports = {
// ...
plugins: [
'@docusaurus/plugin-content-blog',
'@docusaurus/plugin-content-pages',
],
themes: ['@docusaurus/theme-classic'],
};
astuce

Docusaurus prend en charge les raccourcis de module, vous permettant de simplifier la configuration ci-dessus comme suit :

docusaurus.config.js
module.exports = {
// ...
plugins: ['content-blog', 'content-pages'],
themes: ['classic'],
};

Ils peuvent Ă©galement ĂȘtre chargĂ©s Ă  partir de rĂ©pertoires locaux :

docusaurus.config.js
const path = require('path');

module.exports = {
// ...
themes: [path.resolve(__dirname, '/path/to/docusaurus-local-theme')],
};

Pour spécifier des options pour un plugin ou un thÚme, remplacer le nom du plugin ou du thÚme dans le fichier de configuration par un tableau contenant le nom et un objet d'options :

docusaurus.config.js
module.exports = {
// ...
plugins: [
[
'content-blog',
{
path: 'blog',
routeBasePath: 'blog',
include: ['*.md', '*.mdx'],
// ...
},
],
'content-pages',
],
};

Pour spécifier des options pour un plugin ou un thÚme qui est fourni dans un preset, passez les options à travers le champ presets. Dans cet exemple, docs fait référence à @docusaurus/plugin-content-docs et theme fait référence à @docusaurus/theme-classic.

docusaurus.config.js
module.exports = {
// ...
presets: [
[
'@docusaurus/preset-classic',
{
docs: {
sidebarPath: require.resolve('./sidebars.js'),
},
theme: {
customCss: [require.resolve('./src/css/custom.css')],
},
},
],
],
};
astuce

Le raccourci presets : [['classic', {...}]] fonctionne aussi bien.

Pour de plus amples informations sur la configuration des thĂšmes, des plugins et des presets, consultez Utilisation des plugins.

Configurations personnalisĂ©es​

Docusaurus préserve docusaurus.config.js des champs inconnus. Pour ajouter des champs personnalisés, définissez-les dans customFields.

Exemple :

docusaurus.config.js
module.exports = {
// ...
customFields: {
image: '',
keywords: [],
},
// ...
};

Accùs à la configuration depuis les composants​

Votre objet de configuration sera rendu disponible pour tous les composants de votre site. Et vous pouvez y accéder via le contexte React en tant que siteConfig.

Exemple basique :

import React from 'react';
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';

const Hello = () => {
const {siteConfig} = useDocusaurusContext();
const {title, tagline} = siteConfig;

return <div>{`${title} · ${tagline}`}</div>;
};
astuce

Si vous voulez juste utiliser ces champs du cÎté client, vous pouvez créer vos propres fichiers JS et les importer en tant que modules ES6, il n'y a pas besoin de les mettre dans le docusaurus.config.js.

Personnalisation de la configuration de Babel​

Pour les nouveaux projets Docusaurus, nous avons automatiquement généré un babel.config.js à la racine du projet.

babel.config.js
module.exports = {
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
};

La plupart du temps, cette configuration fonctionnera correctement. Si vous voulez personnaliser votre configuration Babel (par exemple pour ajouter le support de Flow), vous pouvez directement modifier ce fichier. Pour que vos changements prennent effet, vous devez redémarrer le serveur de dev de Docusaurus.