在.NET中将Markdown转换为HTML

kgqe7b3p  于 2023-11-20  发布在  .NET
关注(0)|答案(5)|浏览(159)

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

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

字符串
我有Markdown文本存储在数据库中,需要在显示时转换为HTML。
我知道StackOverflow的WMD Editor(现在的PageDown),但它只转换客户端。

icnyk63a

icnyk63a1#

TL;DR:现在是2021年,使用markdig
我刚刚遇到这个问题,答案都很老了。似乎基于commonmark的实现是现在建议的方法。许多语言(包括C#)的实现都可以在here中找到

wqsoz72f

wqsoz72f2#

另一个似乎正在流行的实现是MarkdownDeep
这是C#和JavaScript的完整实现。Nuget上的MarkdownHelper现在使用MarkdownDeep而不是MarkdownSharp。
我两个都用过,MarkdownDeep似乎功能更全面,拥有JavaScript版本对于快速的客户端设置来说非常好。

628mspwn

628mspwn3#

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

ffscu2ro

ffscu2ro4#

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

agxfikkp

agxfikkp5#

  • Markdown Sharp**

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

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);

字符串

相关问题