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

如何在DocFx中基于实际文件夹自定义导航?能否自定义api/toc.yml?

解决DocFx按文件夹结构生成API导航的问题

DocFx默认会按命名空间生成API导航结构,示例如下:

- MyNamespace.SomeArea
  - Class 1
  - Class 2
- MyNamespace.SomeOtherArea
  - Class 3
  - Class 4

但如果需要基于类的实际存储文件夹(与命名空间不对应)生成导航,预期结构如下:

- RootFolder/Subfolder1
  - Class 1
- RootFolder/Subfolder2
  - Class 2
  - Class 3
  - Class 4

可以通过以下步骤实现自定义导航:

1. 禁用DocFx自动生成API目录的toc.yml

在项目的docfx.json配置文件中,找到build下的content条目,为API源文件所在的配置项添加"disableTocGeneration": true,阻止DocFx自动生成api/toc.yml。示例配置片段:

"build": {
  "content": [
    {
      "files": ["**/*.cs"],
      "src": "src",
      "dest": "api",
      "disableTocGeneration": true
    }
  ],
  // 其他构建配置...
}

2. 自定义生成api/toc.yml

按照需求的文件夹结构手动编写或通过脚本生成api/toc.yml,格式需符合DocFx的目录规范。示例内容:

- name: RootFolder/Subfolder1
  items:
    - name: Class 1
      href: Class1.md
- name: RootFolder/Subfolder2
  items:
    - name: Class 2
      href: Class2.md
    - name: Class 3
      href: Class3.md
    - name: Class 4
      href: Class4.md

如果类的数量较多,建议编写脚本(如C#、Python脚本)遍历源代码文件夹,自动匹配类文件与生成的MD文档路径,批量生成符合要求的toc.yml。

3. 确保自定义toc.yml被识别

将生成好的api/toc.yml放置在DocFx项目对应API输出的目录下(即docfx.json中配置的dest路径,默认是api文件夹),DocFx构建时会读取该文件生成自定义导航结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 01:40:28