Reputation: 121742
How can I convert markdown into html in .NET?
var markdown = "Some **bold** text";
var output = ConvertMarkdownToHtml(markdown)
// Output: <p>Some <strong>bold</strong> text</p>
I have Markdown text stored in a database that needs to be converted to html when it is displayed.
I know about StackOverflow's WMD Editor (now PageDown), but that only converts client-side.
Upvotes: 30
Views: 27815
Reputation: 409
TL;DR: now it's 2021 use markdig
I just came across this questions and the answers are all quite old. It appears that implementations based on commonmark are the suggested way to go now. Implementations for lots of languages (including C#) can be found here
Upvotes: 35
Reputation: 32698
Markdown Sharp is what the site uses and is available on NuGet.
Upvotes: 4
Reputation: 24710
Markdown Sharp
Markdown Sharp isn't that bad code-wise either as John Leidegren noted, it's just not that easy to comment-out regular expressions or manage complex projects, w in in cleanest-OOP. It is definitely very fast and well-supported. I haven't found a Markup-parser based approach yet. Here is an example:
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);
Upvotes: 1
Reputation: 1723
Another implementation that seems to be gaining ground is MarkdownDeep
This is a full implementation for both C# and JavaScript. The MarkdownHelper on Nuget is using MarkdownDeep now instead of MarkdownSharp.
I've used both and MarkdownDeep seems to be more fully functional and having the JavaScript version is great for quick client side setups.
Upvotes: 14
Reputation: 310832
Check out Markdown Sharp. It's the open source library that resulted from the development of Stack Overflow and is much more robust/actively developed than markdown.net.
Upvotes: 3