更好的 ruby​​ markdown 解释器?

Posted

技术标签:

【中文标题】更好的 ruby​​ markdown 解释器?【英文标题】:Better ruby markdown interpreter? 【发布时间】:2010-09-27 05:51:58 【问题描述】:

我正在尝试找到一个可以在 rakefile 中使用的 Markdown 解释器类/模块。

到目前为止,我已经找到了maruku,但我对 beta 版本有点警惕。

有人对maruku有任何问题吗?或者,您知道更好的选择吗?

【问题讨论】:

【参考方案1】:

我每天使用 Maruku 处理 100,000 - 200,000 个文档。主要是论坛帖子,但我也将它用于大型文档,如 wiki 页面。 Maruku 比 BlueCloth 快得多,并且不会阻塞大型文档。这都是 Ruby,虽然代码不是特别容易扩展和增强,但它是可行的。我们对 Markdown 方言进行了一些调整和补充。

如果你想要纯 Ruby,我绝对推荐 Maruku。

对于最快的选项,您可能需要 RDiscount。胆量是在 C 中实现的。

另请参阅:Ryan Tomayko 博客上的“Moving Past BlueCloth”。 Ryan 的帖子包含以下 100 次降价测试迭代的基准测试:

BlueCloth: 13.029987s total time, 00.130300s average
   Maruku: 08.424132s total time, 00.084241s average
RDiscount: 00.082019s total time, 00.000820s average

2009 年 8 月更新

BlueCloth2 已发布 (http://www.deveiate.org/projects/BlueCloth) 它的速度与 RDiscount 相当,因为它基于 RDiscount - 它不是纯 Ruby。

(感谢Jim)

2009 年 11 月更新

Kramdown 1.0 was just released。我还没有尝试过,但它是一个纯 Ruby Markdown 解析器,声称比 Maruku 快 5 倍。

2011 年 4 月更新

自 2010 年 6 月以来,Maruku 没有看到任何提交。您可能希望改为查看 Kramdown。

一个新的非纯 Ruby 的快速选项:GitHub 发布了基于 libupskirt 的 Redcarpet:https://github.com/blog/832-rolling-out-the-redcarpet

2013 年 8 月更新

Kramdown 仍然是一个非常健康的项目(基于最近的提交、未解决的问题、拉取请求)并且是纯 Ruby Markdown 引擎的绝佳选择https://github.com/gettalong/kramdown

对于不需要或想要纯 Ruby 的人来说,Redcarpet 可能仍然是最常用和积极维护的选项。

【讨论】:

给了你+1,因为你把更新部分! 我不能说这里的更新部分有多么有用。只是在谷歌上搜索一个 Ruby 解决方案会导致一堆在当时可能很棒的实现,但这提供了很多上下文。 这就是为什么我喜欢 *** 的社区(真的是整个 Exchange) - 一种完全不必要和不请自来的慷慨和认真。 Kramdown's tests page 目前包含所有库的 2012 年 2 月基准测试。 我必须指出,Kramdown 偏离了 Markdown 标准。例如,(我发现)你不能在标题内有链接。如果你碰巧有很多预先存在的 Markdown 文档,你应该警惕这一点。【参考方案2】:

http://ruby-toolbox.com/categories/markup_processors.html 的列表将是开始寻找的好地方。

【讨论】:

+1 所有这些其他答案都会很快过时,但只要 ruby​​-toolbox 存在,该列表就应该保持最新。【参考方案3】:

RDiscount 快速且易于使用。

【讨论】:

【参考方案4】:

试试RDiscount。 BlueCloth 很慢而且有问题。

【讨论】:

不再是了。它现在使用 C 折扣库。 deveiate.org/projects/BlueCloth【参考方案5】:

casey 给出的答案中的基准使用 BlueCloth 1。BlueCloth 2 目前是最快的:http://www.deveiate.org/projects/BlueCloth

【讨论】:

【参考方案6】:

我相信BlueCloth 是最突出的一个。

【讨论】:

【参考方案7】:

看起来很多这些答案已经过时了。

到目前为止(2013 年夏季)我在那里发现的最好的东西是 Redcarpet gem:https://github.com/vmg/redcarpet

【讨论】:

【参考方案8】:

为确保您获得 BlueCloth 2,请按如下方式安装:

gem install bluecloth

请注意,“bluecloth”应全部小写,而不是驼峰式。

来源:http://rubygems.org/gems/bluecloth

【讨论】:

【参考方案9】:

如果你需要一个公平的例子来说明如何在 rakefile 中使用类似 Kramdown 的东西,github 上有一个 repo,其中包含 markdown.md 中的代码和文章,可以通过 Ruby 代码语法突出显示但也可以转换为 html 行号.(我宁愿关闭行号)

如果有人知道如何关闭默认的行号,请告诉我们。

反正链接是https://github.com/elm-city-craftworks/practicing-ruby-manuscripts

【讨论】:

以上是关于更好的 ruby​​ markdown 解释器?的主要内容,如果未能解决你的问题,请参考以下文章

markdown [rails:devise] Ruby on Rails的身份验证gem。 #ruby #rails

markdown Ruby中的状态模式示例

markdown Ruby编程技巧

markdown 在Ruby中进行GET请求

markdown Ruby on Rails Cheatsheet

markdown Ruby Cheatsheet