C#のmarkdownライブラリ,MarkdownSharpを使用する

markdown記法とは?


wikiなどでよく使用されている構文です。

http://ja.wikipedia.org/ によると..

Markdown は軽量マークアップ言語のひとつである。
「読みやすく書きやすいプレーンテキストで書け、そして構造的に妥当なXHTML(もしくはHTML)
に変換することのできるフォーマット」として、John GruberとAaron Swartzによって考案された。
Markdownの記法の多くは、電子メールでプレーンテキストを装飾する際の慣習から着想を得ている。


だそうです。




markdown記法の変換ライブラリ


C#でのmarkdown記法パーサは、markdownsharpというライブラリが有名です。

markdownsharpは、stackoverflow.comなどで使用されています。
MITライセンスですので、自作のアプリに組み込みやすい所も良いです。

markdownsharpは、基本的にはPerl 1.0.1のMarkdown実装を元にしてされています。
また、幾つかStackOverflow.com向けのカスタマイズが施されていますが、それらの機能はデフォルトでoffになっているので気にする必要はありません。


VisualStudio2010で、markdownsharpを使用する


http://code.google.com/p/markdownsharp/ のdownloadsリンクより最新版をダウンロードします。
本エントリー作成時の最新は、20100703-v113でした。

※ファイルは7zip形式(*.7z)です。展開ソフトがない場合は7-zip portableが便利です。
(7-zip portableは文字通りポータブル版なのでインストール不要です)


ファイルを展開すると、以下の3フォルダ/ファイルが入っています。




メインとなる、ソースが入っているフォルダ(MarkdownSharp)を確認すると、6ファイルはいっています。


AssemblyInfo.cs・MarkdownSharp.csprojは、実際のロジックは入ってないので関係なし。

MarkdownOld.csは、ソースの頭を見ると以下の記述があります。
過去バージョンの確認用らしいので、コレも関係ないですね。

This old version is included only for historical comparison purposes; 
use at your own risk!



ですので、実質的には3ファイルで構成されているようです。

Escapes.cs
Markdown.cs
MarkdownOptions.cs




動作確認

とりあえず、トップフォルダにある.slnファイルを開いてコンパイルをかけます。

MarkdownSharp\bin\Debugの下にMarkdownSharp.dllが出来ていることを確認します。



次に、MarkdownSharpTest側のプロジェクトを実行させます。
(ソリューションエクスプローラで右クリック->デバッグ実行)

コマンドプロンプトがが開いて、テスト結果が表示されます。




結果を全部表示させると、以下のような感じになります。

MarkdownSharp v1.13 test run on \mdtest-1.1
 
001 Amps_and_angle_encoding                                OK
002 Auto_links                                             OK
003 Backslash_escapes                                      OK^
004 Blockquotes_with_code_blocks                           OK
005 Code_Blocks                                            OK
006 Code_Spans                                             OK
007 Hard_wrapped_paragraphs_with_list_like_lines           OK
008 Horizontal_rules                                       OK
009 Images                                                 OK
010 Inline_HTML_Advanced                                   OK
011 Inline_HTML_comments                                   OK
012 Inline_HTML_Simple                                     OK
013 Links_inline_style                                     OK
014 Links_reference_style                                  OK
015 Links_shortcut_references                              OK
016 Literal_quotes_in_titles                               OK
017 Markdown_Documentation_Basics                          OK
018 Markdown_Documentation_Syntax                          OK
019 Nested_blockquotes                                     OK
020 Ordered_and_unordered_lists                            OK^
021 Strong_and_em_together                                 OK
022 Tabs                                                   OK
023 Tidyness                                               OK^
 
Tests        : 23
OK           : 23 (^ 3 whitespace differences)
Mismatch     : 0
 
MarkdownSharp v1.13 test run on \mstest-0.1
 
001 code-inside-list                                       Mismatch
002 line-endings-cr                                        OK
003 line-endings-crlf                                      OK
004 line-endings-lf                                        OK
005 markdown-readme                                        OK
 
Tests        : 5
OK           : 4
Mismatch     : 1
 
 
MarkdownSharp v1.13 benchmark, takes 10 ~ 30 seconds...
input string length: 475
4000 iterations in 2850 ms (0.7125 ms per iteration)
input string length: 2356
1000 iterations in 2843 ms (2.843 ms per iteration)
input string length: 27737
100 iterations in 3017 ms (30.17 ms per iteration)
input string length: 11075
1 iteration in 15 ms
input string length: 88607
1 iteration in 119 ms
input string length: 354431
1 iteration in 462 ms



以上で、動作確認は完了です。



おまけ。
dllだけ欲しい人のために、コンパイルしたものを置いときます。

ダウンロード: MarkdownSharp_20100703-v113.zip

関連記事

コメントを残す

メールアドレスが公開されることはありません。