https://github.com/jjyr/minidown/releases/tag/v2.1.0
很久前发过一次,但我当时没想到有很多隐藏的很难解决的 bug。(比如区分 html 和普通的 text,正确分析几种有歧义的语法等)
最近才找到了思路,把这些难缠的 bug 都修掉了,并且加入了 table 的语法支持。
现在已经做到了 100% 的 GFM 格式支持!!
其实写这个的初衷就是很多 markdown parser 号称支持 GFM,但并非 100% 的支持,比如 redcarpet 的 underscore 语法,如果加上 escape 符号的话会有问题,换行貌似也会有问题。marked 则是不支持 Task list.maruku 的话总是报错,rdiscount 解析速度又太慢。
于是就打算写个纯 ruby,100% 支持 GFM,使用方便,不可配置 (这一点也是考虑到了减少复杂度) 的 markdown parser。写完后测了下,发现解析速度相比同是 ruby 所写的 maruku 和 rdiscount 还是有不少优势。
目前 minidown 坚持的是小而方便路线
纯 ruby
无其他依赖
暂时不会考虑加入更多的自定义 (目前 code 块可以自定义,用于代码着色)
当初版本号升的太草率了,所以导致 2.1 版前隐藏着一些很难发现的 parse 上的问题。
现在测试用例增加到了 120 多个,可以说正确性已经得到了解决,并且已经 100% 支持 GFM!
#9 楼 @cloudqq GitHub Flavored Markdown https://help.github.com/articles/github-flavored-markdown