miso_soup3 Blog

主に ASP.NET 関連について書いています。

Markdig Markdown processor for .NET

Implementing a Markdown Engine for .NET | xoofx

GitHub - lunet-io/markdig: A fast, powerful, CommonMark compliant, extensible Markdown processor for .NET


.NET 用の Markdown パーサー「Markdig」が良さげな感じです。

背景

今まで、.NET での Markdown パーサーとして MarkdownSharp や MarkdownDeep を使っていました。
ほぼ標準の Markdown の仕様( こことか)しか実装されておらず、
また保守も最近されておらず、GitHub や Codeplex 等のようなテーブルやコード等の表現は、 .NET では難しいものがありました。

Markdig

Markdig は、CommonMark の仕様を実装し、下の図の通り拡張機能が多数用意されています。
PHP Markdown Extra や、Pandoc、GitHub などの表現が取り込まれています。

f:id:miso_soup3:20160928143834p:plain
(この図は冒頭 GitHub の Readme ページのスクショです。)

使ってみる

下記のように記述すれば上のような拡張機能が使えます。

using System;
using Markdig;
//...
var pipeline = new MarkdownPipelineBuilder().UseAdvancedExtensions().Build();
var result = Markdown.ToHtml("This is a text with some *emphasis*", pipeline);

サンプルコード Gist:https://gist.github.com/hhyyg/56325059768cc4a0997bfa049d410508