2011-09-05 41 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。它可能会在未来几年成为事实上的标准,因为一些主要用户参与了这个项目,但它可能只是许多方面的另一种方言,在这种情况下,参考实现几乎没有什么价值。