Markdownを処理する

Markdown形式のデータを読み込み、HTMLを出力するサンプルです。
MarkdownSharpF# Formatting を利用した例をそれぞれ以下に示します。
Markdownの文法は http://blog.2310.net/archives/6 などでご確認ください。


各ライブラリはNuGetからインストール可能です。

// F# Formatting
let transform1 str =
    FSharp.Markdown.Markdown.TransformHtml(str)

// MarkdownSharp
let transform2 str =
    MarkdownSharp.Markdown().Transform(str)


let sample = """
Markdown
--------
- one
- two
- three

> quotation...

- - -

    let a = "fsharp"
    printfn "%s" a
"""

[<EntryPoint>]
let main argv =
    transform1 sample |> printfn "%s"
    transform2 sample |> printfn "%s"
    0


このプログラムを実行すると、以下のようなHTMLが得られます。

<h2>Markdown</h2>

<ul>
<li>one</li>
<li>two</li>
<li>three</li>
</ul>

<blockquote>
  <p>quotation...</p>
</blockquote>

<hr />

<pre><code>let a = "fsharp"
printfn "%s" a
</code></pre>


どちらも同じ結果になりますが、MarkdownSharpは処理速度も考慮した実装になっているそうです。風の便りによると*1、MarkdownSharpはStack Overflowでも使われているとか。

*1:時には風に身を任せるのも いいじゃない Oh Miss yourself - innocent world, Mr.Children