#:g1: cl-markdownの紹介

Posted 2014-04-19 05:00:00 GMT

(LISP Library 365参加エントリ)

 LISP Library 365 の109日目です。

cl-markdownとはなにか

 cl-markdownは、Gary W. King氏作のCommon Lispでmarkdown形式を扱うためのライブラリです。

パッケージ情報

パッケージ名cl-markdown
Quicklisp
参考サイト
CLiKihttp://cliki.net/cl-markdown
Quickdocshttp://quickdocs.org/cl-markdown

インストール方法

(ql:quickload :cl-markdown)

試してみる

 どんな関数があるかは、Quickdocsで確認できます。

 使い方はシンプルで、markdown:markdownに変換したい文字列/ストリーム/パスオブジェクトを渡すと指定したストリームにHTMLの文字列が出力されます。

(markdown:markdown "
# cl-markdown の使い方

markdownで書いてhtmlの出力を期待している" :stream t) ;>> <h1>cl-markdown の使い方</h1><p>markdownで書いてhtmlの出力を期待している </p> ;=> #<MARKDOWN::DOCUMENT # cl-markdown の使い方 markdownで書いてhtmlの出力を期待している {101FD616C3}> ; NIL

 複数のファイル/文字列を変換するmarkdown:markdown-manyというものも用意されています。
どうも:formatに明示的に形式を渡さないとエラーになるようです〈バグ?〉。

;>>  Parsing: "こんにちは"
;>>  Rendering: "/tmp/k.html"
;=>  #<MARKDOWN::MULTI-DOCUMENT 1 children {101C709603}>
;    ((#<MARKDOWN::CHILD-DOCUMENT こんにちは {101C70A0F3}> "/tmp/k.html"))

 また、markdown:defextension、markdown:defsimple-extensionで記法を拡張することも可能です。詳細はドキュメントとサンプルコードを参照してみましょう。
ちょっと試してみた感想ですが、拡張したいことがシンプルなら、そこそこ簡単に拡張できるのではないでしょうか。

まとめ

 今回は、cl-markdownを紹介してみました。
世間で使われているmarkdownは割合に拡張されていたりするので、素のmarkdownだと寂しく感じることがありますね。

comments powered by Disqus