我希望使用DocFx为我们发布的所有API文档创建一个中央存储库。我通过我的构建(使用TFS)自动生成文档,并通过我的发布(使用Octopus)发布,适用于多个单独的站点。但是,我想在一个地方完全把它拉出来。我们的想法是,通过父网站,您可以过滤任何单个网站中的内容,而无需向下钻取。你有关于如何做到这一点的建议吗?
此外,在同一个文档存储库中,我希望提供跨我们产品组合中数百个项目的所有元数据(项目级文档)进行搜索的功能。这将使我们的BA,DEV和QA团队更容易访问我们所有的系统。我喜欢"过滤"功能内置于DocFx中,但我希望对所有元数据进行全文搜索。您是否也推荐此功能?
答案 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
,然后在中心位置为搜索页面收集它们。