You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Docusaurus自定义标签Markdown页面优先于默认主题路由?

解决Docusaurus标签路由与自定义Markdown页面冲突的问题

方案1:通过Frontmatter设置路由优先级

在docs/tags/contribute.md的Frontmatter中添加routePriority: high,让Markdown页面路由优先级高于自动生成的标签页路由:

---
title: 贡献指南标签页
routePriority: high
---

这里填写你的自定义Markdown内容...

Docusaurus会优先加载高优先级路由,既不会触发重复路由警告,访问/docs/tags/contribute时也会直接展示你的自定义Markdown页面。

方案2:在Swizzle后的组件中做条件渲染

既然已经完成DocTagDocListPage的swizzle操作,可直接在该组件内判断当前标签是否为contribute,针对性渲染自定义内容:

  1. 打开swizzle后的组件文件(一般路径为src/theme/DocTagDocListPage/index.js)
  2. 添加条件判断逻辑:
import React from 'react';
import DocTagDocListPageOriginal from '@theme-original/DocTagDocListPage';

export default function DocTagDocListPage(props) {
  const { tag } = props;
  // 匹配contribute标签时渲染自定义内容
  if (tag === 'contribute') {
    return (
      <div className="container">
        <h1>自定义贡献标签页</h1>
        <p>这里可以直接编写JSX内容,也可引入外部组件/Markdown文件渲染</p>
      </div>
    );
  }
  // 其他标签页保留默认文档列表逻辑
  return <DocTagDocListPageOriginal {...props} />;
}

这种方式无需创建额外Markdown文件,直接在现有标签页组件内完成定制,从根源避免路由冲突。

方案3:排除自动生成的contribute标签路由

在docusaurus.config.js的docs预设配置中,添加规则阻止Docusaurus自动生成contribute标签的路由:

module.exports = {
  presets: [
    [
      '@docusaurus/preset-classic',
      {
        docs: {
          // 排除contribute标签的自动路由生成
          exclude: ['**/tags/contribute'],
          // 保留其他原有配置
        },
      },
    ],
  ],
};

配置完成后,再创建docs/tags/contribute.md就不会触发重复路由警告,因为自动生成的路由已被禁用。

内容的提问来源于stack exchange,提问作者niklas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 18:24:26