Docusaurus中的自定义标签页

3

我想为Docusaurus创建一个自定义标签页。我正在使用经典主题,并成功地重新组合了DocTagDocListPage。现在我可以更改所有标签页的模板

我要做的是为路由docs/tags/contribute创建一个自定义的markdown页面,例如,只需在docs/tags/contribute.md中创建该文件即可拥有该页面,但是Docusaurus会发出以下警告。

[WARNING] Duplicate routes found!
- Attempting to create page at /docs/tags/contribute, but a page already exists at this route.
This could lead to non-deterministic routing behavior.

有没有一种简单的方法可以设置页面而无需编写自己的主题?或者让我的 Markdown 页面优先于主题路由?


如果我提供的答案解决了你的问题,请考虑批准它,以便其他开发人员更容易地找到解决方案。 - Dimitar
1个回答

1

既然您已经通过交换 DocTagDocListPage 来创建了一个 /docs/tags 页面,那么您可以使用 plugin-content-pages 插件来为 /docs/tags/contribute 创建一个自定义页面。

首先,安装 plugin-content-pages 包:

npm install @docusaurus/plugin-content-pages

然后,您需要配置您的docusaurus.config.js文件:

module.exports = {
  // ...
  plugins: [
    [
      "@docusaurus/plugin-content-pages",
      {
        id: "tags-contribute",
        path: "tags/contribute",
        routeBasePath: "docs",
      },
    ],
  ],
};

这个配置告诉 Docusaurus 为位于 docs/tags/contribute.md 的 markdown 文件生成一个 ID 为 tags-contribute 的页面,并使用 /docs 路由基础路径。

现在,您可以创建 docs/tags/contribute.md 文件,Docusaurus 将根据该文件的内容生成一个页面,其路由为 /docs/tags/contribute

请记住,如果您有冲突的路由,Docusaurus 将优先考虑在配置中首先出现的路由。在这种情况下,由于已经对 DocTagDocListPage 进行了调整,因此您可以确信您的自定义页面将具有优先权。


最后一部分不幸的是不正确的。Docusaurus声明,它不保证给出优先级的路由。这可能会导致非确定性路由行为。我的目标是在可用的情况下使用默认的标签页面,但如果我指定了某些内容,则使用我的自定义标签页面。 - niklas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接