Aller au contenu principal
Version : 3.3.2

Utiliser plusieurs barres latérales

Vous pouvez créer une barre latérale pour chaque ensemble de fichiers Markdown que vous souhaitez regrouper.

astuce

Le site Docusaurus est un bon exemple d'utilisation de plusieurs barres latérales :

Prenons l'exemple suivant :

sidebars.js
export default {
tutorialSidebar: {
'Category A': ['doc1', 'doc2'],
},
apiSidebar: ['doc3', 'doc4'],
};

Lorsque vous parcourez doc1 ou doc2, la tutorialSidebar s'affichera, lorsque vous parcourez doc3 ou doc4, la apiSidebar sera affichée.

En suivant l'exemple ci-dessus, si un commonDoc est inclus dans les deux barres latĂ©rales :

sidebars.js
export default {
tutorialSidebar: {
'Category A': ['doc1', 'doc2', 'commonDoc'],
},
apiSidebar: ['doc3', 'doc4', 'commonDoc'],
};

Comment Docusaurus sait-il quelle barre latĂ©rale afficher lors de la navigation sur commonDoc ? RĂ©ponse : il n'en est rien, et nous ne garantissons pas le choix de la barre latĂ©rale.

Lorsque vous ajoutez le doc Y Ă  la barre latĂ©rale X, cela crĂ©e une liaison bidirectionnelle : la barre latĂ©rale X contient un lien vers le doc Y, et lorsque vous parcourez le doc Y, la barre latĂ©rale X s'affiche. Mais parfois, nous voulons interrompre l'une ou l'autre de ces liaisons implicites :

  1. Comment puis-je générer un lien vers le doc Y dans la barre latérale X sans faire en sorte que la barre latérale X s'affiche sur Y ? Par exemple, lorsque j'inclus le doc Y dans plusieurs barres latérales comme dans l'exemple ci-dessus, et que je veux dire explicitement à Docusaurus d'afficher une barre latérale ?
  2. Comment faire pour que la barre latĂ©rale X s'affiche lors de la navigation dans le doc Y, mais que la barre latĂ©rale X ne contienne pas le lien vers Y ? Par exemple, lorsque Y est un « doc de page d'accueil Â» et que la barre latĂ©rale est purement utilisĂ©e pour la navigation ?

L'option du front matter displayed_sidebar va forcer l'association de la barre latĂ©rale. Pour le mĂȘme exemple, vous pouvez toujours utiliser des raccourcis de doc sans aucune configuration spĂ©ciale :

sidebars.js
export default {
tutorialSidebar: {
'Category A': ['doc1', 'doc2'],
},
apiSidebar: ['doc3', 'doc4'],
};

Et puis ajouter un frontmatter :

commonDoc.md
---
displayed_sidebar: apiSidebar
---

Ce qui indique explicitement Ă  Docusaurus d'afficher apiSidebar lors de la navigation dans commonDoc. En utilisant la mĂȘme mĂ©thode, vous pouvez faire en sorte que la barre latĂ©rale X qui ne contient pas le doc Y apparaisse sur le doc Y :

home.md
---
displayed_sidebar: tutorialSidebar
---

MĂȘme lorsque tutorialSidebar ne contient pas de lien vers home, il sera toujours affichĂ© lors de la visualisation de home.

Si vous définissez displayed_sidebar: null, aucune barre latérale ne sera affichée sur cette page, et donc, aucune pagination non plus.

GĂ©nĂ©ration de la pagination​

Docusaurus utilise la barre latĂ©rale pour gĂ©nĂ©rer les liens de pagination « suivant Â» et « prĂ©cĂ©dent Â» au bas de chaque page de doc. Il utilise strictement la barre latĂ©rale qui est affichĂ©e : si aucune barre latĂ©rale n'est associĂ©e, cela ne gĂ©nĂšre pas non plus de pagination. Toutefois, les docs liĂ©s en tant que « Suivant Â» et « PrĂ©cĂ©dent Â» ne sont pas assurĂ©s d'afficher la mĂȘme barre latĂ©rale : ils sont inclus dans cette barre latĂ©rale, mais dans leur frontmatter, ils peuvent avoir un displayed_sidebar diffĂ©rent.

Si une barre latĂ©rale est affichĂ©e en dĂ©finissant displayed_sidebar du front matter, et que cette barre latĂ©rale ne contient pas le doc lui-mĂȘme, aucune pagination n'est affichĂ©e.

Vous pouvez personnaliser la pagination dans le front matter avec pagination_next et pagination_prev. ConsidĂ©rez cette barre latĂ©rale :

sidebars.js
export default {
tutorial: [
'introduction',
{
installation: ['windows', 'linux', 'macos'],
},
'getting-started',
],
};

Le lien suivant de la pagination pour « windows Â» pointe vers « linux Â», mais cela n'a pas de sens : vous aimeriez que les lecteurs passent Ă  la rubrique « getting-started Â» aprĂšs l'installation. Dans ce cas, vous pouvez dĂ©finir la pagination manuellement :

windows.md
---
pagination_next: getting-started
---

# Installation sous Windows

Vous pouvez également désactiver l'affichage d'un lien de pagination avec pagination_next: null ou pagination_prev: null.

Le libellé de la pagination par défaut est le libellé de la barre latérale. Vous pouvez utiliser le pagination_label du front matter pour personnaliser l'apparence de ce document dans la pagination.

Le type ref est identique au type doc de toutes les maniÚres, sauf qu'il ne participe pas à la génération de métadonnées de navigation. Il ne s'enregistre que comme un lien. Lors de la génération de la pagination et l'affichage de la barre latérale, les éléments ref sont complÚtement ignorés.

Ceci est particuliĂšrement utile lorsque vous souhaitez crĂ©er un lien vers le mĂȘme document Ă  partir de plusieurs barres latĂ©rales. Le document n'appartient qu'Ă  une seule barre latĂ©rale (celle oĂč il est enregistrĂ© comme type: 'doc' ou depuis un rĂ©pertoire autogĂ©nĂ©rĂ©), mais son lien apparaĂźtra dans toutes les barres latĂ©rales dans lesquelles il est enregistrĂ©.

Prenons l'exemple suivant :

sidebars.js
export default {
tutorialSidebar: {
'Category A': [
'doc1',
'doc2',
{type: 'ref', id: 'commonDoc'},
'doc5',
],
},
apiSidebar: ['doc3', 'doc4', 'commonDoc'],
};

Vous pouvez considĂ©rer le type ref comme l'Ă©quivalent de faire la chose suivante :

  • ParamĂ©trage displayed_sidebar: tutorialSidebar pour commonDoc (ref est ignorĂ© dans l'association de la barre latĂ©rale)
  • ParamĂštrage pagination_next: doc5 pour doc2 et paramĂ©trage pagination_prev: doc2 pour doc5 (ref est ignorĂ© dans la gĂ©nĂ©ration de pagination)