我可以从 XML 文档生成 .MD 文件吗?

Can I generate .MD files from XML Documentation?

我最近使用 Sandcastle 来记录我的 class 库。不过最近发现Sandcastle已经不是微软开发的了:https://archive.codeplex.com/?p=sandcastle.

我在 GitHub 上上网看了看,现在我看到很多开源项目都使用 .MD (MarkDown) 文件。我看到 GitHub 和 TFS 支持 .MD 文件。如何从 XML 文档文件生成 .MD 文件?

我花了最后几个小时谷歌搜索这个。例如,我发现只有几百次下载:https://github.com/lijunle/Vsxmd/tree/master/Vsxmd 我不是在寻求工具推荐。我问是否可以将 .XML 文档转换为 .MD 文件。

当然可以从 XML 评论生成降价。显而易见的问题是:为什么?最佳答案是:将markdown内容生成网站。

DocFX 本质上是 Sandcastle 的替代品。我正在使用它根据 C# 代码中的 XML 评论生成一个文档网站。

是的,有可能。

有很多项目可以做到这一点。你找到的那个 Vsxmd for example but also simpler ones like lontivero/593fc51f1208555112e0.

这个过程基本上是读取每个 XML 元素(或其中的一些)并将其转换为降价中的等价物。等效项是您在编写转换器时必须选择的内容,这取决于您希望结果文件的样式。

如果您不想像 Vsxmd 那样只打印 "Inherit from parent." 或像 lontivero 那样忽略它,那么在处理像 <inheritdoc/> 这样的标签时,事情会变得复杂。

我仍在寻找更好的工具或时间来改进它。

在我的场景中,我想要在 GitHub Wiki 中为我的项目编写代码文档,它需要 markdown 文件而不是 html。

Visual Studio(Mac,在我的例子中)有一个 project options > build > compiler 复选框 generate the xml documentation file for the project. Vsxmd 从这个 xml 文件生成一个 md 文件。在大多数降价预览器中查看它时,它的布局非常好且广泛,但 GitHub 似乎超时时间很短,无法呈现大型降价页面。

也没有布局,但是我发现GitHub可以渲染的是web工具生成的单个md文件,vsdoc-2-md

我最终在我的项目中使用的是 Default Documentation. It is a nuget that runs during buildtime just like Vsxmd,但会生成 多个 md 文件,这些文件小到 GitHub 不会抱怨。

请注意 GitHub Wiki 重命名其 url 中的文件,以便删除所有 .md 扩展名。我必须执行 search/replace 以从所有链接中删除 .md,以便单击 GitHub Wiki 中的文档来工作。

是的,这是可能的。 可用的解决方案不适合我的需要,所以(免责声明)我已经开始开发自己的解决方案:MarkDoc.Core.

这是一个独立的应用程序,因此不涉及任何 NuGet 包。此外,该应用程序是完全可定制的,允许您导出到 Markdown 以外的其他来源等。

同样,这是我的项目,在撰写此答案时,它仍在进行中。