2011-09-05 80 views
18

在Clojure中編寫我自己的Markdown解析器的問題是Markdown不是一個明確指定的語言。沒有「官方」語法,只是一個非正式的「這是它的工作原理」的描述,以及一個非常醜陋的Perl參考實現。 http://briancarper.net/blog/415/Markdown的規範實現是什麼?

我可以看到格魯伯的規格here和實施here

這是贏得谷歌排名測試here

實現再有就是peg-markdown這似乎解決了「有沒有語法」的問題 - 但不規範的執行情況。

我的問題是 - 什麼是降價的規範實施? (大家說的定義標準)。

編輯:

我承認, 「沒有規範的標準」。我正在尋找下一個最好的東西。

答案似乎是showdown.js,但有problems with it

(使用規範的定義是大家說的定義標準)。

它被引用爲here和github上here

我也會拋出pagedown(由@deceze提供),因爲它似乎可以修復攤牌中的錯誤,並且更接近Gruber的原創。

+1

另請參閱http://six.pairlist.net/mailman/listinfo/markdown-discuss – daxim

+1

另請參閱http://www.codinghorror.com/blog/2009/12/responsible-open-source-code-parenting .html(也就是說,答案很可能幾乎沒有。) – deceze

回答

6

我相信Gruber's是原始的和有規範的(例如見his 'Introducing Markdown'),然後人們從那裏擴展它。我認爲一些擴展比其他擴展更普遍,所以它可能值得看看幾個使用良好的軟件包比他的原始軟件包。

+0

您認爲什麼是一個使用良好的軟件包? – hawkeye

+0

你在其他答案中鏈接到的人:[github one](http://github.github.com/github-flavored-markdown/),[showdown](https://github.com/coreyti/showdown) ,以及[折扣](http://www.pell.portland.or.us/~orc/Code/discount)和[Python Markdown](http://www.freewisdom.org/projects/python-降價/功能)。我也會說[Text :: Markdown](http://search.cpan.org/~bobtfish/Text-Markdown-1.000030/lib/Text/Markdown.pm)和[PHP Markdown](http:// michelf .com/projects/php-markdown /),但它們似乎都是Gruber原創的嚴格實施。 – Aesin

1

CommonMark project試圖解決Markdown規範的一些問題,特別是一些含糊不清的問題。它帶有一個reference implementation,但這顯然只是CommonMark的參考實現,而不是一般的Markdown。它可能會在未來幾年成爲事實上的標準,因爲一些主要用戶參與了這個項目,但它可能只是許多方面的另一種方言,在這種情況下,參考實現幾乎沒有什麼價值。