如何使用DocFx创建可搜索的代码文档中央存储库

时间:2017-07-25 20:00:56

标签: documentation docfx

我希望使用DocFx为我们发布的所有API文档创建一个中央存储库。我通过我的构建(使用TFS)自动生成文档,并通过我的发布(使用Octopus)发布,适用于多个单独的站点。但是,我想在一个地方完全把它拉出来。我们的想法是,通过父网站,您可以过滤任何单个网站中的内容,而无需向下钻取。你有关于如何做到这一点的建议吗?

此外,在同一个文档存储库中,我希望提供跨我们产品组合中数百个项目的所有元数据(项目级文档)进行搜索的功能。这将使我们的BA,DEV和QA团队更容易访问我们所有的系统。我喜欢"过滤"功能内置于DocFx中,但我希望对所有元数据进行全文搜索。您是否也推荐此功能?

2 个答案:

答案 0 :(得分:2)

要更改docfx输出的位置,请编辑docfx.json文件并指定dest值。默认情况下为"dest": "_site"。有关更多格式指导,请参考:https://dotnet.github.io/docfx/tutorial/docfx.exe_user_manual.html

关于全文搜索,可以通过简单地确保调用ExtractSearchIndex后处理器(以生成关键字index.json的文件)和全局_enableSearch来实现。在true文件中将值设置为docfx.json。该文件的片段如下所示:

"postProcessors": [ "ExtractSearchIndex" ],
"globalMetadata": {
  "_enableSearch": "true"
}

答案 1 :(得分:1)

关于你的第一个问题:

我认为你期望的是.NET API Browser。此页面背后的源代码不向公众开放,因此您需要自己创建此页面,从多个站点收集xrefmap.yml,并将所需数据提取到此页面中。

关于你的第二个问题:

DocFX使用Luna扫描所有输出文件并生成名为index.json的索引文件,以供日后搜索使用。在您的情况下,您应该只想在您定义的元数据中限制搜索范围。默认情况下,DocFX也不支持此功能。您还可以在中心位置使用Luna来搜索这些元数据。您可以先为每个项目创建特定的index.json,然后在中心位置为搜索页面收集它们。