我一直在使用 DocFX 为 C# 生成代码文档,并且在大多数情况下发现它取得了很大的成功。这些文章很灵活,我真的很喜欢我可以使用 Markdown 来维护它们,同时让它们与 API 参考并存。我还花时间记录 Markdown 中的演练并构建 CI 管道。
我试图解决的问题是,我需要想办法让我的代码文档(xml 注释)输出为 markdown 而不是 html,以便它可以由 markdown wiki 解决方案托管,特别是 Azure DevOps(又名 TFS) . Azure DevOps Wiki 似乎也与来自 GitHub 的 gh-pages 非常相似,所以我对类似的解决方案感兴趣,我可能能够在 Azure DevOps 中工作。DocFX 没有解决这个问题,因为输出是 .html 而不是 markdown。
Microsoft 的所有文档都侧重于手工编写文档。我对根据代码中的 xml 注释生成文档很感兴趣。
我正在开发一个在解决方案中有多个项目的项目.我希望能够从外部目录生成文档,以保持应用程序代码文件夹清洁.当我尝试在docfx.json中设置src目录时,它似乎不喜欢绝对路径,也不喜欢相对路径.
{
"metadata":
[{
"src":
[{
"files": ["../../../Repos/Wsi.Extranet.CommonServices/Wsi.Extranet.CommonServices/**/*.csproj"]
"exclude":
[
"**/obj/**",
"**/bin/**",
"_site/**"
]
}],
"dest": "api"
}],
"build": {
"content": [
{
"files": [
"api/**.yml",
"api/index.md"
]
},
{
"files": [
"articles/**.md",
"articles/**/toc.yml",
"toc.yml",
"*.md"
],
"exclude": [
"obj/**",
"_site/**"
]
}
],
"resource": [
{
"files": [
"images/**"
],
"exclude": [
"obj/**",
"_site/**"
]
}
],
"overwrite": [
{
"files": [
"apidoc/**.md"
],
"exclude": [
"obj/**",
"_site/**"
]
}
],
"src": "../../../Repos/Wsi.Extranet.CommonServices/Wsi.Extranet.CommonServices",
"dest": "_site",
"globalMetadataFiles": [],
"fileMetadataFiles": [], …
Run Code Online (Sandbox Code Playgroud) 查看流程 DocFX 似乎创建 .md 文件,然后在创建文档时将其转换为 html。
有没有办法使 DocFX 输出到 .md 文件而不是 html ?
在我的 VS 2017 项目中,我引用了 docfx.console 包,我希望它仅在满足特定条件时使用。但是该包被用于所有构建。
这是我项目的一部分。我希望在配置为 Installer/AnyCPU 并且 VS 正在构建 net40 风格时使用 docfx.console。
<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net40;netstandard1.3;netstandard2.0</TargetFrameworks>
<!-- ... -->
<Configurations>Debug;Release;Installer</Configurations>
</PropertyGroup>
<ItemGroup Condition=" '$(TargetFramework)'=='net40' ">
<!-- ... -->
<PackageReference Include="docfx.console" Version="2.30.0" Condition="'$(Configuration)|$(Platform)'=='Installer|AnyCPU'" />
</ItemGroup>
<!-- ... -->
</Project>
Run Code Online (Sandbox Code Playgroud)
有没有办法在仅针对 net40 的安装程序构建中使用 docfx.console?
我们使用 docfx,它作为 nuget 包含在我们的一个 csproj 文件中。我没有亲自设置这个东西,我没有关于它如何工作的更多信息,但它看起来像一个简单的 nuget 添加到 C# 项目,然后在 Visual Studio 中的项目编译期间生成文档。
我们的问题是构建日志的详细程度总是设置为详细(或详细或他们如何称呼它),即我在解决方案中有 20 个 c# 项目,并且由于我没有警告或错误,输出窗口中的构建输出是整个解决方案的缩写,每个项目只有几行。但是这个带有 docfx 的项目在编译期间总是会产生大量输出,因为它将所有详细消息写入输出窗口(以及放置在项目目录中的 log.txt 文件)。
问题是如何从“输出”窗口中摆脱这种情况。我试着用谷歌搜索,我发现命令行上的 --logLevel 警告参数可以降低冗长。但是我们不使用任何命令行,我们在项目中有 nuget。而且我看不到可以指定此 --logLevel 警告的地方。
(使用最新的 nuget“docfx.console”版本 2.40.4,C# 项目属于类库类型。我在任何地方都看不到特殊设置。对于输出窗口和日志文件,msbuild 详细程度的 Visual Studio 设置都设置为最小。 )
我刚开始使用Docfx并设置了一些基本的概念文档.现在我想对主题进行一些调整(公司徽标,也许是一些字体更改等).
在官方文档只给出了如何创建一个新的模板高级描述.我之前从未使用过模板语言,所以如果可能的话,我现在想避免使用它.
我的问题是:我如何对默认主题进行小幅调整,比如一些CSS更改以及可能添加外部资源(如字体真棒)?
我是否必须创建整个模板(或其中的一部分),还是可以以某种方式包含CSS文件?该文档提到了一个theme
选项,但到目前为止,我还没有找到任何示例或现有主题可供学习.
仅使用自定义主题或模板的项目链接已经非常有用.该docfx回购有一个docfx.website.themes
文件夹,默认模板也是在那里,我相信,但我不能真正弄明白我会该文件提供推出自己的.
我希望使用 DocFx 为我们所有已发布的 API 文档创建一个中央存储库。我有通过我的构建(使用 TFS)自动生成并通过我的版本(使用 Octopus)发布的文档,对于多个单独的站点来说都很好。但是,我想将它完全拉到一个位置。想法是,通过父站点,您可以过滤任何单个站点中的内容,而无需深入查看它们。你有关于如何做到这一点的建议吗?
此外,在同一个文档存储库中,我想提供在我们的投资组合中的数百个项目中搜索所有元数据(项目级文档)的功能。这将使我们的 BA、DEV 和 QA 团队更容易访问我们所有系统的功能。我喜欢 DocFx 中内置的“过滤”功能,但我想要对所有元数据进行全文搜索。你对这个功能也有推荐吗?
https://github.com/KevReed/DocFx.Plugins.PlantUml
我通过nuget为docfx插件安装了plantUml.通过nuget install DocFx.Plugins.PlantUml -ExcludeVersion -OutputDirectory .
命令,之后我在构建docfx之后获得了这个结果,并且我在localhost上检查了index.html但它没有用.我看不到plantuml图只有带文字的纯文本.如果您有任何想法,请帮助我.我检查了<code class="lang-plantuml">
builed html上的标签.
这是我的环境.
macOS Sierra 10.12.6
NuGet Version: 4.7.0.5148
docfx Version: 2.38.1.0
Run Code Online (Sandbox Code Playgroud)
[路径]
(projectfolder)/docfx.json
(projectfolder)/plantuml.jar
(projectfolder)/DocFx.Plugins.PlantUml
Run Code Online (Sandbox Code Playgroud)
[docfx.json]
{
"metadata": [
{
"src": [
{
"files": [
"**/**.cs"
],
"src":"../localizedstring"
}
],
"dest": "api",
"disableGitFeatures": false,
"disableDefaultFilter": false
}
],
"build": {
"content": [
{
"files": [
"api/**.yml",
"api/index.md"
]
},
{
"files": [
"articles/**.md",
"articles/**/toc.yml",
"toc.yml",
"*.md"
]
}
],
"resource": [
{
"files": [
"images/**"
]
}
], …
Run Code Online (Sandbox Code Playgroud)