根据当前页面显示不同的侧边栏

时间:2019-10-01 18:02:53

标签: docusaurus

是否可以根据您所在网站的哪个部分显示不同的侧边栏?因此,如果我有两个部分(BooksCountries),则可以显示相应的侧边栏菜单对象:

module.exports = {
    books: {
        "Children's Book": [
            "books/childrens-books/winnie-the-pooh",
            "books/childrens-books/harry-potter",
        ],
        "Non-Fiction": [
            "books/non-fiction/hitchikers-guide",
            "books/non-fiction/a-history-of-england",
        ]
    },
    countries: {
        "Europe": [
            "countries/europe/england",
            "countries/europe/france",
            "countries/europe/spain",
        ],
        "Asia": [
            "countries/asia/china",
            "countries/asia/india",
            "countries/asia/laos",
        ],
    },
}

docs do reference可以完成类似的操作,但是没有任何示例可以配合使用:

  

通过向导出的对象添加更多顶级键,可以为不同的Markdown文件提供多个侧边栏。

我可以找到引用的侧边栏的唯一其他位置是在docusaurus.config.js中,但是我不确定此部分的用途:

presets: [
    [
        '@docusaurus/preset-classic',
            {
                docs: {
                    sidebarPath: require.resolve('./sidebars.js'),
                },
...

任何指针表示赞赏!

1 个答案:

答案 0 :(得分:0)

所以问题是我的内容结构与sidebar.js中的内容结构不匹配。现在是我的内容结构:

docs
├── README.md
├── books
│   ├── childrens-books
│   │   ├── harry-potter.md
│   │   └── winnie-the-pooh.md
│   └── non-fiction
│       ├── a-history-of-england.md
│       └── hitchikers-guide.md
└── countries
    ├── asia
    │   ├── china.md
    │   ├── india.md
    │   └── laos.md
    └── europe
        ├── england.md
        ├── france.md
        └── spain.md
├── docs
├── docusaurus.config.js
├── sidebars.js
└── src

我认为问题在于,Docusaurus找不到我所参考的文章,因此它没有被解析。

通过这种设置,像localhost:3000/docs/books/childrens-books/harry-potter这样的URL可以正常工作,但是localhost:3000/docs/books/childrens-books/将返回空白页,因为该URL没有相应的文章。