[摘要]

这是我编写的一个 Docfx 文档自动生成工具,只要写好 Markdown 文档,使用此工具可为目录、文件快速生成配置,然后直接使用 docfx 运行即可。

https://github.com/whuanle/CZGL.DocfxBuild.Yml/releases/tag/1.0

下载地址 https://github.com/dotnet/docfx/releases

下载后解压压缩包,记录好目录路径。

Win 搜索 “环境变量”,会出现 “编辑系统环境变量”。

然后 ↓

新建一个目录,用来存放 markdown 文件。打开目录,按住 Shift + 鼠标右键 ,打开 Powershell 。

两个命令

  1. docfx init -q
  1. docfx docfx_project\docfx.json --serve // 以实际路径为准

使用此命令在目录下初始一个 docfx 项目

  1. docfx init -q

-q 这个参数表示忽略询问,直接生成。如果需要自定义配置,可取消 -q 这个参数。

打开 docfx_project 文件夹,目录结构如下:

  1. docfx_project
  2. .
  3. ├── api
  4.    ├── index.md
  5.    └── toc.yml
  6. ├── apidoc
  7. ├── articles
  8.    ├── intro.md
  9.    └── toc.yml
  10. ├── docfx.json
  11. ├── images
  12. ├── index.md
  13. ├── src
  14. └── toc.yml

src 目录用来存放你需要生成文档的项目,直接把整个项目(解决方案)放进去即可。

生成文档

  1. docfx docfx_project\docfx.json --serve

预览

对于 项目,可以快速生成对象文档、代码文档。

这里有关于 REST API 生成文档的详细方法

https://dotnet.github.io/docfx/tutorial/intro_rest_api_documentation.html

文字文档使用 markdown 文件编写,存放位置 articles 。

  1. ├── intro.md
  2. └── toc.yml

这两个文件是默认的, toc.yml 由于默认生成目录结构,intro.md 是打开文档是默认看到的,可以理解为封面内容。例如 Github 仓库的 Readme.md 。

为了生成多级目录,建议每个目录有应该有一个 toc.yml 文件。

最简单的语法

  1. - name: xxx
  2. href: xxxx

用于生成目录结构详细、文档文件,href 可以是 目录、 .md 文件、.yml 文件。

但 href 为 .yml 是,会生成目录结构。

使用

  1. items:
  2. - name: Topic2_1
  3. href: Topic2_1.md
  4. ...
  5. ...

也可以生成层次结构。

  1. homepage: index.md

用来生成首页文件,对于子目录,用处不大。

用来测试的文件和目录

  1. .
  2. └── articles
  3. ├── a
  4.    ├── a
  5.    ├── a.md
  6.    ├── b
  7.    ├── b.md
  8.    ├── c
  9.    ├── c.md
  10.    ├── d
  11.    └── d.md
  12. ├── b
  13.    ├── a
  14.    ├── a.md
  15.    ├── b
  16.    ├── b.md
  17.    ├── c
  18.    ├── c.md
  19.    ├── d
  20.    └── d.md
  21. ├── c
  22.    ├── a
  23.    ├── a.md
  24.    ├── b
  25.    ├── b.md
  26.    ├── c
  27.    ├── c.md
  28.    ├── d
  29.    └── d.md
  30. ├── d
  31.    ├── a
  32.    ├── a.md
  33.    ├── b
  34.    ├── b.md
  35.    ├── c
  36.    ├── c.md
  37.    ├── d
  38.    └── d.md
  39. ├── intro.md
  40. └── toc.yml

使用 CZGL.DocfxBuild.Yml 自动生成后

  1. .
  2. └── articles
  3. ├── a
  4.    ├── a
  5.    ├── a.md
  6.    ├── b
  7.    ├── b.md
  8.    ├── c
  9.    ├── c.md
  10.    ├── d
  11.    ├── d.md
  12.    └── toc.yml
  13. ├── b
  14.    ├── a
  15.    ├── a.md
  16.    ├── b
  17.    ├── b.md
  18.    ├── c
  19.    ├── c.md
  20.    ├── d
  21.    ├── d.md
  22.    └── toc.yml
  23. ├── c
  24.    ├── a
  25.    ├── a.md
  26.    ├── b
  27.    ├── b.md
  28.    ├── c
  29.    ├── c.md
  30.    ├── d
  31.    ├── d.md
  32.    └── toc.yml
  33. ├── d
  34.    ├── a
  35.    ├── a.md
  36.    ├── b
  37.    ├── b.md
  38.    ├── c
  39.    ├── c.md
  40.    ├── d
  41.    ├── d.md
  42.    └── toc.yml
  43. ├── intro.md
  44. └── toc.yml

生成文档:

  1. docfx docfx_project\docfx.json --serve

使用 CZGL.DocfxBuild.Yml 可以帮助你快速生成文档目录。

根目录的 toc.yml 文件:

  1. - name: a
  2. href: a/toc.yml
  3. - name: b
  4. href: b/toc.yml
  5. - name: c
  6. href: c/toc.yml
  7. - name: d
  8. href: d/toc.yml
  9. - name: intro
  10. href: intro.md
  11. homepage: intro.md

name 为目录名称。

href 指向子目录下的 toc.yml 文件

目录 a 的结构

  1. .
  2. ├── a
  3.    ├── a.md
  4.    ├── b
  5.    ├── b.md
  6.    ├── c
  7.    ├── c.md
  8.    ├── d
  9.    ├── d.md
  10.    └── toc.yml
  11. ├── a.md
  12. ├── b
  13.    ├── a.md
  14.    ├── b.md
  15.    ├── c.md
  16.    ├── d.md
  17.    └── toc.yml
  18. ├── b.md
  19. ├── c
  20.    ├── a.md
  21.    ├── b.md
  22.    ├── c.md
  23.    ├── d.md
  24.    └── toc.yml
  25. ├── c.md
  26. ├── d
  27.    ├── a.md
  28.    ├── b.md
  29.    ├── c.md
  30.    ├── d.md
  31.    └── toc.yml
  32. ├── d.md
  33. └── toc.yml
  1. ### G:\临时缓存\docfx\docfx_project\articles\a
  2. - name: a
  3. href: a/toc.yml
  4. - name: b
  5. href: b/toc.yml
  6. - name: c
  7. href: c/toc.yml
  8. - name: d
  9. href: d/toc.yml
  10. - name: a
  11. href: a.md
  12. - name: b
  13. href: b.md
  14. - name: c
  15. href: c.md
  16. - name: d
  17. href: d.md
  18. homepage: a.md

每个目录一个 .yml 文件

如果这个目录下有目录,则连接子目录的 .yml 文件,如果是子文件,则链接这个 .md 文件。

这样能够快速生成文档目录。

当然也可以尝试 items

官方详细文档地址

https://dotnet.github.io/docfx/tutorial/intro_toc.html

利用空闲时间写了自动生成 docfx 目录的功能,下载地址

https://github.com/whuanle/CZGL.DocfxBuild.Yml/releases/tag/1.0

效果预览 https://doc.whuanle.cn

晚上有事,今天的博客水完了。

版权声明:本文为whuanle原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/whuanle/p/11141046.html