欢迎来到我的网站
Sidebar
Creating a sidebar is useful to:
- Group multiple related documents (对多个有关联的文档进行分组)
- Display a sidebar on each of those documents
- Provide paginated navigation, with next/previous button (提供分页导航,与下一个/上一个按钮)
To use sidebars on your Docusaurus site:
- Define a file that exports a dictionary of sidebar objects.
- Pass this object into the
@docusaurus/plugin-docsplugin directly or via@docusaurus/preset-classic.
export default { presets: [ [ '@docusaurus/preset-classic', { docs: { sidebarPath: './sidebars.js', }, }, ], ],};上一章介绍官方建议自动生成, 所以用下面模版(来源于官方创建的网站)(系统也会给你自动生成):
import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';
/** * Creating a sidebar enables you to: - create an ordered group of docs - render a sidebar for each doc of that group - provide next/previous navigation
The sidebars can be generated from the filesystem, or explicitly defined here.
Create as many sidebars as you want. */const sidebars: SidebarsConfig = { // By default, Docusaurus generates a sidebar from the docs folder structure tutorialSidebar: [{type: 'autogenerated', dirName: '.'}],
// But you can create a sidebar manually /* tutorialSidebar: [ 'intro', 'hello', { type: 'category', label: 'Tutorial', items: ['tutorial-basics/create-a-document'], }, ], */};
export default sidebars;Default sidebar
If the sidebarPath is unspecified, Docusaurus automatically generates a sidebar for you, by using the filesystem structure of the docs folder:
export default { mySidebar: [ { type: 'autogenerated', dirName: '.', // generate sidebar from the docs folder (or versioned_docs/<version>) }, ],};Sidebar object
侧边栏的核心是类别、文档链接和其他超链接的层次结构。
type Sidebar = // Normal syntax | SidebarItem[] // Shorthand syntax | {[categoryLabel: string]: SidebarItem[]};For example:
export default { mySidebar: [ { type: 'category', label: 'Getting Started', items: [ { type: 'doc', id: 'doc1', }, ], }, { type: 'category', label: 'Docusaurus', items: [ { type: 'doc', id: 'doc2', }, { type: 'doc', id: 'doc3', }, ], }, { type: 'link', label: 'Learn more', href: 'https://example.com', }, ],};Theme configuration
Hideable sidebar : By enabling the themeConfig.docs.sidebar.hideable option, you can make the entire sidebar hideable, allowing users to better focus on the content.
export default { themeConfig: { docs: { sidebar: { hideable: true, }, }, },};自动折叠侧边栏类别
themeConfig.docs.sidebar.autoCollapseCategories将折叠所有子类目
export default { themeConfig: { docs: { sidebar: { autoCollapseCategories: true, }, }, },};Passing custom props
To pass in custom props to a sidebar item, add the optional customProps object to any of the items. This is useful to apply site customizations by swizzling React components rendering sidebar items. 要将自定义道具传递给侧边栏项,请向任何项添加可选的customProps对象。这对于通过使React组件呈现侧边栏项来应用站点自定义非常有用。
{ type: 'doc', id: 'doc1', customProps: { badges: ['new', 'green'], featured: true, },};Sidebar Breadcrumbs
By default, breadcrumbs are rendered at the top, using the “sidebar path” of the current page.
This behavior can be disabled with plugin options:
export default { presets: [ [ '@docusaurus/preset-classic', { docs: { breadcrumbs: false, }, }, ], ],};Complex sidebars example
example
import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';const sidebars: SidebarsConfig = { docs: [ 'introduction', { type: 'category', label: 'Getting Started', link: { type: 'generated-index', }, collapsed: false, items: [ 'installation', 'configuration', 'playground', 'typescript-support', ], }, { type: 'category', label: 'Guides', link: { type: 'generated-index', title: 'Docusaurus Guides', description: "Let's learn about the most important Docusaurus concepts!", keywords: ['guides'], image: '/img/docusaurus.png', }, items: [ 'guides/creating-pages', { type: 'category', label: 'Docs', link: { type: 'doc', id: 'guides/docs/introduction', }, items: [ 'guides/docs/create-doc', { type: 'category', label: 'Sidebar', link: { type: 'doc', id: 'guides/docs/sidebar/index', }, items: [ 'guides/docs/sidebar/items', 'guides/docs/sidebar/autogenerated', 'guides/docs/sidebar/multiple-sidebars', ], }, 'guides/docs/versioning', 'guides/docs/multi-instance', ], }, 'blog', { type: 'category', label: 'Markdown Features', link: { type: 'doc', id: 'guides/markdown-features/introduction', }, items: [ 'guides/markdown-features/react', 'guides/markdown-features/tabs', 'guides/markdown-features/code-blocks', 'guides/markdown-features/admonitions', 'guides/markdown-features/toc', 'guides/markdown-features/assets', 'guides/markdown-features/links', 'guides/markdown-features/plugins', 'guides/markdown-features/math-equations', 'guides/markdown-features/diagrams', 'guides/markdown-features/head-metadata', ], }, 'styling-layout', 'swizzling', 'static-assets', 'search', 'browser-support', 'seo', 'using-plugins', 'deployment', { type: 'category', label: 'Internationalization', link: {type: 'doc', id: 'i18n/introduction'}, items: [ { type: 'doc', id: 'i18n/tutorial', label: 'Tutorial', }, { type: 'doc', id: 'i18n/git', label: 'Using Git', }, { type: 'doc', id: 'i18n/crowdin', label: 'Using Crowdin', }, ], }, 'guides/whats-next', ], }, { type: 'category', label: 'Advanced Guides', link: {type: 'doc', id: 'advanced/index'}, items: [ 'advanced/architecture', 'advanced/plugins', 'advanced/routing', 'advanced/ssg', 'advanced/client', ], }, { type: 'category', label: 'Upgrading', link: { type: 'doc', id: 'migration/index', }, items: [ 'migration/v3', { type: 'category', label: 'To Docusaurus v2', items: [ 'migration/v2/migration-overview', 'migration/v2/migration-automated', 'migration/v2/migration-manual', 'migration/v2/migration-versioned-sites', 'migration/v2/migration-translated-sites', ], }, ], }, ], api: [ 'cli', 'docusaurus-core', { type: 'autogenerated', dirName: 'api', }, ],};export default sidebars;Sidebar items
们将介绍以下的api。
- Doc: link to a doc page, associating it with the sidebar
- Link: link to any internal or external page
- Category: creates a dropdown of sidebar items
- Autogenerated: generate a sidebar slice automatically
- HTML: renders pure HTML in the item’s position
- *Ref: link to a doc page, without making the item take part in navigation generation
Doc: link to a doc
Use the doc type to link to a doc page and assign that doc to a sidebar:
使用doc类型链接到一个文档页面,并将该文档分配给侧边栏: