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

Docusaurus能否读取文件夹内所有文件?sidebar.js是否支持通配符动态加载文件?

Docusaurus相关问题解答

1. Docusaurus能否读取文件夹中的所有文件?

当然可以!Docusaurus本身就支持自动识别指定目录下的文件,不同场景的实现方式略有不同:

  • 文档模块:把Markdown/MDX文件放在你配置的文档根目录(默认是docs),Docusaurus就能自动识别这些文件。如果要让它们在侧边栏展示,只需要配置对应的自动生成规则即可。
  • 博客模块:默认的blog目录下,所有符合命名规范的Markdown文件都会被自动转化为博客文章,完全不用手动添加到配置里。
  • 自定义页面:src/pages目录下的文件会被自动识别为网站页面,路由直接对应文件名,比如src/pages/about.md会对应/about路径。

2. 能否用通配符实现侧边栏动态读取文件夹内所有文件?

必须可以!你完全不用手动逐个添加文件到sidebar.js,Docusaurus提供了自动生成侧边栏的功能,能基于目录结构或通配规则动态加载文件。

方法一:用autogenerated类型配置侧边栏

直接修改sidebar.js,通过autogenerated指定要扫描的目录,它会自动根据文件夹结构生成分类和条目:

module.exports = {
  docs: [
    {
      type: 'autogenerated',
      dirName: '.', // 扫描当前docs根目录下的所有文件
    },
  ],
};

如果只想针对特定子目录(比如你例子里的widgets)自动生成,可以这样配置:

module.exports = {
  docs: [
    {
      type: 'category',
      label: 'Docs',
      items: [
        {
          type: 'autogenerated',
          dirName: 'widgets', // 自动扫描docs/widgets下的所有文件
        },
        {
          type: 'autogenerated',
          dirName: 'next', // 自动扫描docs/next下的所有文件
          label: 'Next category'
        }
      ]
    }
  ]
};

方法二:结合插件配置过滤文件

你还可以在docusaurus.config.js的plugin-content-docs插件中,通过include和exclude字段用通配符过滤文件,再配合侧边栏自动生成:

module.exports = {
  plugins: [
    [
      '@docusaurus/plugin-content-docs',
      {
        path: 'docs',
        routeBasePath: 'docs',
        include: ['**/*.md', '**/*.mdx'], // 匹配所有md和mdx格式文件
        exclude: ['**/_*.md', '**/_*.mdx'], // 排除下划线开头的文件(通常是草稿或配置文件)
        sidebarPath: require.resolve('./sidebars.js'),
      },
    ],
  ],
};

另外,如果你想自定义文件在侧边栏的排序顺序,可以在Markdown文件的front matter里添加sidebar_position字段,比如:

---
sidebar_position: 1
---
# 快速开始

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 13:27:34