Spoike
Spoike

Reputation: 121742

Convert Markdown to HTML in .NET

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

Answers (5)

Matt Keen
Matt Keen

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

Garry Shutler
Garry Shutler

Reputation: 32698

Markdown Sharp is what the site uses and is available on NuGet.

Upvotes: 4

Lorenz Lo Sauer
Lorenz Lo Sauer

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

Bil Simser
Bil Simser

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

Drew Noakes
Drew Noakes

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

Related Questions