docFX - 删除 API 参考目录中的命名空间前缀
docFX - Remove namespace prefix in API Reference TOC
我正在从 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 中,仅在 title/header.
中提及
在 docFX 中是否可行,或者我需要编写自定义服务器端 post-构建事件脚本?
提前致谢
我也遇到了同样的问题,通过写模板解决了。它唯一做的就是覆盖 preTransform
挂钩,您需要在名为 toc.extension.js
的文件中指定该挂钩。在那里我去掉了长命名空间前缀。因为我有一个多层的目录,所以我递归地做。您很可能可以根据需要的级别对其进行硬编码。我的代码如下所示:
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
中除了默认模板外,还简单地指定了自己的模板,这导致调用了挂钩。其工作方式如下:
"build": {
"template": [
"default",
"/path/to/your/template/folder"
]
}
我正在从 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 中,仅在 title/header.
中提及在 docFX 中是否可行,或者我需要编写自定义服务器端 post-构建事件脚本?
提前致谢
我也遇到了同样的问题,通过写模板解决了。它唯一做的就是覆盖 preTransform
挂钩,您需要在名为 toc.extension.js
的文件中指定该挂钩。在那里我去掉了长命名空间前缀。因为我有一个多层的目录,所以我递归地做。您很可能可以根据需要的级别对其进行硬编码。我的代码如下所示:
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
中除了默认模板外,还简单地指定了自己的模板,这导致调用了挂钩。其工作方式如下:
"build": {
"template": [
"default",
"/path/to/your/template/folder"
]
}