首页 > 其他分享 >Docusaurus 配合 DocFX

Docusaurus 配合 DocFX

时间:2023-04-12 15:45:38浏览次数:49  
标签:Docusaurus XXFramework DocFxMarkdownGen 配合 yaml API docfx DocFX

目标 & 背景

最近公司刚刚搭好 Docusaurus 文档环境,刚好在即刻看到 叫我三叔就行 用户提到的 DocFX 自动生成 C# API 的工具,此工具最终会生成一组 yaml 文件,然后进行 web 的绘制,这个和 Docusaurus 刚好冲突

现有的文档不兼容,着实有些遗憾,本篇文章会介绍如何兼容这两个工具

DocFxMarkdownGen 工具

这个也是一个开源工具,其整体思路是将生成的 yaml 文件二次解析成 md 文件,但是该作者当前仓库版本的 Docusaurus 应该是跟我们的版本不一致,所以需要做一些小的修改

这里特指 Docusaurus 2.3.1 版本

具体改动可以参考 fix: fit Decusaurus 2.3.1 提交的 diff 内容

目录规划

在我们的文档中,包含了 N 个框架,因此在 website/Framework 下,就对应着 N 个文件夹

此处根据自己项目实际需要做调整,后续框架的名称都称为 XXFramework

.
├── APIGen
│   └── XXFramework # 存放 docfx 生成的文件和配置
├── README.md
├── Tools
│   └── DocFxMarkdownGen # 存放转换工具
└── website
    ├── Framework
    ├──── XXFramework # 当前框架
    ├──────API # 要自动生成的文档路径

docfx 使用

最终使用时你只需要关心如下内容,接下来挨个介绍如何使用

.
├── api         # docfx 生成的 yaml 文件夹
├── config.yaml # DocFxMarkdownGen 的配置文件
├── docfx.json # docfx 的配置文件
├── gen.sh  # 自动化脚本
└── namespace_ignore.yml # 忽略那些 namespace
  1. 初始化 docfx
# 升级 docfx 版本
dotnet tool update -g docfx
# 到指定目录
cd APIGen/
# 初始化 docfx
docfx init --quit
# 修改工程文件夹为当前框架名
mv docfx_project XXFramework
  1. 配置 docfx.json 文件

src: 如果你的项目是 Unity 项目,可以在 Library/ScriptAssemblies 找到对应域的 dll

{
  "metadata": [
    {
      "src": [
        {
          "files": [
            "XXFramework.dll"
          ],
          "src": "XXFramework.dll的相对文件夹路径"
        }
      ],
      "dest": "api",
      "includePrivateMembers": false,
      "disableGitFeatures": false,
      "disableDefaultFilter": false,
      "namespaceLayout": "flattened",
      "filter": "namespace_ignore.yml"
    }
  ],
// 其余略
}
  1. namespace_ignore.yml 配置

忽略下方两个命名空间的所有 API

apiRules:
- exclude:
    uidRegex: XXXFramework.XXX1
    type: Namespace
- exclude:
    uidRegex: XXXFramework.XXX2
    type: Namespace
  1. config.yaml

如果你的目录层级跟我这里一样,这个文件就不需要修改

outputPath: ../../website/Framework/XXXFramework/API
yamlPath: ./api
  1. 编译并拷贝 DocFxMarkdownGen 项目

编译过程我就不写了,自己 clone 一下 fork 的仓库,然后将 build 内容拷贝到 Tools/DocFxMarkdownGen 文件夹即可

  1. gen.sh
#!/bin/bash

docfx docfx.json

dotnet ../../Tools/DocFxMarkdownGen/DocFxMarkdownGen.dll

当你需要生成 API 文档时,直接运行 gen.sh 就好了

参考

  1. Docusaurus: https://docusaurus.io/zh-CN/docs/installation
  2. DocFxMarkdownGen-Fork: https://github.com/LiuOcean/DocFxMarkdownGen
  3. docfx: https://dotnet.github.io/docfx/

标签:Docusaurus,XXFramework,DocFxMarkdownGen,配合,yaml,API,docfx,DocFX
From: https://www.cnblogs.com/LiuOcean-Blog/p/docusaurus-pei-he-docfx.html

相关文章

  • Docusaurus 出色的文档解决方案
    目标&背景在内网Package管理这篇文章中,有提到如何构建公司自有的框架,但由此就引发了一个新问题,那就是文档,也是困扰了我很久的一个心病,一个符合我想象的文档工具应当包含如下功能支持版本管理一个服务对应N套框架文档要支持博客类型的文章不需要引入其他编辑器软件......
  • Javaweb-登录界面-filter配合案例-2023-04-11
    1、新建login.jsp登录界面响应的路径<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>Login</title></head><body><h1>登录界面</h1><hr><form......
  • multiprocessing和tqdm配合使用(多进程下载文件进度条显示)
    代码importmultiprocessingasmpimportplatformfromtqdmimporttqdmimportwgetls=['url1','url2','url3']#这里填入实际要下载的urlpbar=tqdm(total=len(ls))pbar.set_description('Sleep')update=lambda*args:pbar.......
  • h5 - pc 使用 pdf.js 预览pdf -配合文件流实现 - 遇到的坑总结
    1.pdf.js下载看我这篇随笔【h5-使用pdf.js预览pdf-岑惜-博客园(cnblogs.com)】2.html调用页面的局部代码<body><divstyle="height:100vh;margin:0auto"><iframestyle="height:100%;width:100%;border:none"id="fvic"src="&......
  • crontab + ThinkPHP6 配合使用
    crontab+ThinkPHP6配合使用1:命令行执行phpthinkmake:commandHellohellophpthinkmake:command控制器名方法名2:console配置3:测试执行phpthinkhello控制台得到结果hello4:配置到linuxcrontab中/usr/local/bin/php/www/web/path/thinkhel......
  • 一部山寨机配合开源软件即可追踪全球手机位置
    条子告诉我们要通过手机追踪一个人的位置是件很简单的事情,明尼苏达大学的研究表明,对来说,这更简单:一部便宜的手机和开源软件,就可以不需要知道用户的GSM网络也能追踪到其手机的位置。根据该大学科学与工程学员的计算机专家的最新研究,第三方可以轻易地追踪到一个手机用户的位置,因......
  • 24.基准(基准面、基准轴、坐标系、点、质心、边界框、配合参考---适合批量装配(相同方
    一.基准面1.可增加的基准面数,可多生成几个基准面2.面、线、角度生成基准面二.轴1.过点垂直于面生成轴2.圆柱面三.坐标系四,质心,点击质心自动生成产品质心 ......
  • elasticSearch配合go基本使用
    一。连接packagemodelimport("fmt""github.com/olivere/elastic/v7")varEsClient*elastic.Clientfuncinit(){//注意IP和端口EsClient,err=elastic.......
  • Java注释规范(配合EasyYapi使用)
    类注释示例/***分类名称*分类备注/描述*@module归属项目*@authorhjy*@date2023/3/9下午2:25*/@RestController@RequestMapping("/barm")public......
  • 富文本编译器-配合gin使用
    一。引入样式<!--IncludeEditorstyle.--><linkhref="https://cdn.jsdelivr.net/npm/froala-editor@latest/css/froala_editor.pkgd.min.css"rel="stylesheet"type......