17

如何在 .NET 中将 markdown 转换为 html?

var markdown = "Some **bold** text";
var output = ConvertMarkdownToHtml(markdown)
// Output: <p>Some <strong>bold</strong> text</p>

我将 Markdown 文本存储在数据库中,在显示时需要将其转换为 html。

我知道 StackOverflow 的WMD 编辑器(现在是PageDown),但这只会转换客户端。

4

5 回答 5

15

TL;DR:现在是 2021 年使用markdig

我刚遇到这个问题,答案都很老了。现在看来,基于commonmark的实现是建议的方式。可以在这里找到许多语言(包括 C#)的实现

于 2021-02-01T21:49:12.370 回答
14

另一个似乎正在取得进展的实现是MarkdownDeep

这是 C# 和 JavaScript 的完整实现。Nuget 上的MarkdownHelper现在使用 MarkdownDeep 而不是 MarkdownSharp。

我都使用过,MarkdownDeep 似乎功能更齐全,并且拥有 JavaScript 版本非常适合快速客户端设置。

于 2011-04-28T13:44:32.100 回答
4

Markdown Sharp是该站点使用的,可在NuGet上使用。

于 2009-01-20T08:44:25.473 回答
3

查看Markdown Sharp。它是 Stack Overflow 开发的开源库,比 markdown.net 更健壮/积极开发。

于 2010-10-02T14:24:43.763 回答
1

降价锐利

正如 John Leidegren 所指出的,Markdown Sharp 在代码方面也没有那么糟糕,注释掉正则表达式或管理复杂项目并不容易,在最干净的 OOP 中。它绝对非常快速且得到很好的支持。我还没有找到基于标记解析器的方法。这是一个例子:

        pattern = string.Format(@"
            (?:
                (?<=\n\n)           # Starting after a blank line
                |                   # or
                \A\n?               # the beginning of the doc
            )
            (                       # save in $1
                [ ]{{0, {0}}}
                <(hr)               # start tag = $2
                \b                  # word break
                ([^<>])*?           #
                /?>                 # the matching end tag
                [ \t]*
                (?=\n{{2,}}|\Z)     # followed by a blank line or end of document
            )", tabWidth - 1);
        text = Regex.Replace(text, pattern, new MatchEvaluator(HtmlEvaluator), RegexOptions.IgnorePatternWhitespace);
于 2011-09-11T19:48:17.477 回答