JavaのMarkdown処理ライブラリ、PegDownを使ってみます。
;; leiningen :depencencies
[org.pegdown/pegdown "1.2.0"]
コンストラクタの引数に拡張機能を表すオプションを指定できます。
とりあえず Extensions/ALL を指定しておけば GitHub Flavored Markdown形式のコードブロックも処理できようです。
(import '[org.pegdown PegDownProcessor Extensions])
(defn md->html [source]
(let [parser (PegDownProcessor. Extensions/ALL)]
(.markdownToHtml parser source)))
(md->html "#hello\n```clojure\n(list 1 2)\n```")
;; => "<h1>hello</h1>\n<pre><code class=\"clojure\">(list 1 2)\n</code></pre>"