在.NET中将Markdown转换为HTML

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

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

  1. var markdown = "Some **bold** text";
  2. var output = ConvertMarkdownToHtml(markdown)
  3. // 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解析器的方法。下面是一个例子:

  1. pattern = string.Format(@"
  2. (?:
  3. (?<=\n\n) # Starting after a blank line
  4. | # or
  5. \A\n? # the beginning of the doc
  6. )
  7. ( # save in $1
  8. [ ]{{0, {0}}}
  9. <(hr) # start tag = $2
  10. \b # word break
  11. ([^<>])*? #
  12. /?> # the matching end tag
  13. [ \t]*
  14. (?=\n{{2,}}|\Z) # followed by a blank line or end of document
  15. )", tabWidth - 1);
  16. text = Regex.Replace(text, pattern, new MatchEvaluator(HtmlEvaluator), RegexOptions.IgnorePatternWhitespace);

字符串

展开查看全部

相关问题