38

C 或 C++的Markdown的最佳实现是什么?

我通过谷歌找到了这些,并希望评论哪些工作良好,哪些不工作(以及哪些我可能错过了):

4

1 回答 1

62
  1. peg-markdown依赖于 GLib 和其他第 3 部分工具。我已经测试过了,效果很好。

    好处:

    • 根据 GPL 和 MIT 双重许可。
    • 使用内部形式语法,因此易于维护和扩展。

    缺点:

    • 依赖于 GLib
    • 提供 C API。
  2. Cpp-Markdown大多数 C++ 代码,但它很慢而且有点臃肿。另一方面,它很容易理解和修改,取决于 boost-1.35。

    好处

    • 仅取决于升压
    • 用 C++ 编写,看起来不那么危险
    • 在麻省理工学院获得许可。

    缺点

    • 慢(它仍然比 Perl 实现快大约 10 倍,但比 Discount 慢大约 10 倍)
  3. 折扣这是我用于博客http://art-blog.no-ip.info/cppcms/blog和 wiki http://art-blog.no-ip.info/wikipp/en/page/的代码主要. 它是由铁杆 C 程序员编写的,很难维护(甚至开发人员都在积极维护它)。

    好处

    • 极快
    • 用纯 C 编写(没有第三部分依赖)。
    • 积极维护
    • 拥有许可的 3 条款 BSD 许可证

    缺点

    • 几乎不可能维护(即使我可以删除/添加一些fatures)。
    • 只有 FILE API,所以我应该调整代码以使其与通用缓冲区一起使用
    • 根据与 GPL 不兼容的 4 条款 BSD 许可证获得许可。如果您不想将它用作 GPL 版软件的一部分,那就有问题了。

为什么我这么了解他们?

我正在开发CppCMS,所以我需要一个好的降价到 HTML 转换器。当我选择一个(折扣)时,这是唯一的解决方案。从那以后,由于许可问题,我需要更换它。也就是说,我还是很喜欢它,因为它是最快的 Markdown 解决方案。

PS:如果你想要 Discount 的 C++ 包装器,请查看http://cppcms.svn.sourceforge.net/viewvc/cppcms/cms/trunk/cxxmarkdown/,它不是最新版本,但已经进行了调整。

编辑:我刚刚访问了折扣网站,我发现它也添加了一个非文件 API。所以现在它是真正的图书馆。

编辑 2:如果您找到更好的实现或在 FOSS 许可下编写自己的实现,请告诉我 ;)

编辑 3:正如 cloose 评论的那样,折扣已将许可证更改为 3 条款 BSD。

于 2009-05-20T19:52:00.380 回答