gpt4 book ai didi

docFX - 删除 API 引用目录中的命名空间前缀

转载 作者:行者123 更新时间:2023-12-04 17:41:08 27 4
gpt4 key购买 nike

我正在从 C# 项目生成 API 引用。
该项目是大型解决方案的一部分,并且对程序集和命名空间有很长的命名约定,因此项目中的每个命名空间都类似于 [CompanyName].[System].[Area].[Module].[...](例如 MyBiz.CRM .Sales.Analytics.Persistence.Common 和 MyBiz.CRM.Sales.Analytics.Persistence.Sql)。
由于项目中的所有命名空间都以 MyBiz.CRM.Sales 开头。我分别为每个系统和区域生成引用,我想排除 MyBiz.CRM.Sales。在左侧的 TOC 中,仅在标题/标题中提及它。

是否可以在 docFX 中使用,或者我需要编写自定义服务器端构建后事件脚本?

提前致谢

最佳答案

我也遇到了同样的问题,写了个模板就解决了。它唯一能做的就是覆盖 preTransform您需要在名为 toc.extension.js 的文件中指定钩子(Hook).在那里我去掉了长命名空间前缀。由于我在多个层中有一个 TOC,因此我会递归地执行此操作。您很可能可以针对您需要的级别对其进行硬编码。我的代码如下所示:

exports.preTransform = function (model) {
// replace recursively the root namespace by ""
transformItem(model, 1);
return model;

function transformItem(item, level) {
if (item.name) {
item.name = item.name.replace("Some.Very.Long.Namespace.Prefix.", '');
} else {
item.name = null;
}

if (item.items && item.items.length > 0) {
var length = item.items.length;
for (var i = 0; i < length; i++) {
transformItem(item.items[i], level + 1);
};
}
}
}

之后,除了 docfx.json中的默认模板之外,我简单地指定了自己的模板。这导致钩子(Hook)被调用。其工作原理如下:
"build": {
"template": [
"default",
"/path/to/your/template/folder"
]
}

引用文献: Docfx: How to create a custom template

关于docFX - 删除 API 引用目录中的命名空间前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54442928/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com