在Docusaurus 2中有没有办法同时拥有两个文档?

2022-04-08 00:00:00 documentation javascript docusaurus

据我所知,Docusaurus支持自定义页面,但有没有办法在一个Docusaurus项目中有两个文档?

原始导航栏项目有:

  • 单据
  • 博客
  • ...

我想要这样的东西:

  • 文档%1
  • 文档2
  • 博客
  • ...

我知道我可以在一个文档中创建多个子文件夹,但出于某种原因,我希望使用两个文档的结构,这使我能够更清晰地访问文档。

如果Docusaurus当前无法提供此功能,我想问一下是否有其他文档框架提供此功能?


解决方案

您需要使用plugin-content-docs。

首先,创建另一个docs文件夹,如docsdocs-apidocs-system

(1)在您的docusaurus.config.js文件中,配置您的默认文档:

(module.exports = { // start of the module.export declaration
[…]

    presets: [
        [
          '@docusaurus/preset-classic',
          {
            docs: {
              routeBasePath: 'docs',
              path: 'docs',
              sidebarPath: require.resolve('./sidebars.js'),
              lastVersion: 'current',
              onlyIncludeVersions: ['current'],
            },
            theme: {
              customCss: require.resolve('./src/css/custom.css'),
            },
          },
        ],
      ],

[…] 
}); // end of the module-export declaration

(2)现在,神奇!:在同一文件中配置您的其他文档:

(module.exports = { // start of the module.export declaration
[…]

plugins: [
    […]
    [
      '@docusaurus/plugin-content-docs',
      {
        id: 'docs-api',
        path: 'docs-api',
        routeBasePath: 'docs-api',
        sidebarPath: require.resolve('./sidebars.js'),
      }, 
    ],
    [
      '@docusaurus/plugin-content-docs',
      {
        id: 'docs-system',
        path: 'docs-system',
        routeBasePath: 'docs-system',
        sidebarPath: require.resolve('./sidebars.js'),
      }, 
    ],
],

[…]
}); // end of the module-export declaration

(3)现在您可能希望这些文档位于您的导航栏中,对吗?那就加吧!

(module.exports = { // start of the module.export declaration
[…]

navbar: {
  hideOnScroll: true,
  title: 'your title',
  logo: {
    alt: '',
    src: 'img/favicon.ico',
  },
  items: [
    {
      to: '/docs/Intro',    // ./docs/Intro.md
      label: 'Docs Title',
      position: 'left',
      activeBaseRegex: `/docs/`,
    },
    {
      to: '/docs-api/Intro',    // ./docs-api/Intro.md
      label: 'API',
      position: 'left',
      activeBaseRegex: `/docs-api/`,
    },
    {
      to: '/docs-system/Introducao',  // ./docs-system/Intro.md
      label: 'My System',
      position: 'left',
      activeBaseRegex: `/docs-system/`,
    },
  ],
},

[…]
}); // end of the module-export declaration

重要信息

有时您会修改docusaurus.config.js而无法工作,因此关闭Docusaurusservice(只需在终端/POWER外壳中按Ctrl+C)并重新启动它--如果早知道这一点,我可以节省几个小时。

如果您没有plugin-content-docs插件,只需安装它:

NPM安装--save@docusaurus/plugin-content-docs

免责声明

我费了好大劲才弄明白这一点。我所做的是下载整个docusaurus项目,获取网站部分,修剪我不需要的一切,这就是我得到的。

相关文章