纯 Ruby 实现的(非 C 语言)Markdown 库

5

我正在寻找一款纯粹使用Ruby(不是C或其他语言)编写的Markdown库。我需要使用它作为示例,因为我必须自己编写一个Markdown处理器。你知道有没有纯Ruby实现的Markdown处理器吗?


2
如果您要编写自己的代码,我建议您查看使用不同但相似的语言(Perl或Python可能是很好的选择)编写的示例。这样您将更好地理解自己在做什么,因为您必须考虑如何将其适应Ruby的范例。如果您使用同一种语言的示例,则更有可能重新实现它们而没有真正理解它们。 - Emily
1个回答

6

在 gems 存储库中搜索 Markdown 可以得到多个结果:

  • kramdown — 另一个快速的 Markdown 解析器,使用严格的语法定义并支持多种常见扩展。它可能是可用的最快的纯 Ruby Markdown 转换器(截至 2011 年 1 月),大约比 Maruku 快 4 倍,比 BlueFeather 快 5 倍。

  • Maruku一个纯 Ruby 的 Markdown 超集解释器。

  • BlueFeather - 用于将类似于 PHP Markdown Extra 的文本转换为 HTML 的软件。它由一对命令行工具和纯 Ruby 库组成。

我个人在phrogz.net上使用kramdown撰写博客,并且它的效果非常好。我特别喜欢其中的一些扩展功能,例如能够将自定义属性(例如CSS类)应用于元素和自定义id属性应用于标题。


kramdown 已经成为我使用的 Markdown 解析器了一段时间。非常好用,支持 Github 扩展。 - Emily
Maruku看起来像是一个已经停滞的项目。最后一次更新是在将近两年前,而大部分其他部分则是在将近三年前进行的更新。更糟糕的是,这个名字是错误的。作者声称“Maruku”这个名字是从英语单词“mark”借用并罗马化后的日语单词,但这完全是错误的。罗马化的日语单词应该是“maaku”。 - sawa
那么关于臭名昭著的列表项下代码块问题呢?除了Maruku之外,我还没有看到其他解决此问题的解析器,但是Maruku本身也存在问题,所以我不愿使用它。Kramdown能处理这些问题吗? - Eliran Malka
@EliranMalka 是的:你可以使用 围栏代码块 或者 EOB 标记 来把代码块放在列表项之后(而不是列表项的子项),而不需要任何   技巧。 - Phrogz
非常感谢,我明天会尝试这些。我应该在这个主题上发布一个新问题。如果发生的话,我会邀请您来回答。 - Eliran Malka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接