C/C++ 的 Markdown 实现

发布于 2024-07-19 22:49:33 字数 1431 浏览 3 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空城旧梦 2024-07-26 22:49:34
  1. peg-markdown 取决于 GLib 和其他第三部分工具。 我已经测试过,效果很好。

    优点:

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

    缺点:

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

    优点

    • 仅取决于提升
    • 用 C++ 编写,看起来危险性较小
    • 获得 MIT 许可。

    缺点

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

    优点

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

    缺点

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

为什么我对它们这么了解?

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

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

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

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

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

  1. peg-markdown depends on GLib and other 3rd part tools. I've tested it, it works quite well.

    Advantages:

    • Dual-licensed under GPL and MIT.
    • Uses internally formal grammar, so easy to maintain and extend.

    Disadvantages:

    • Depends on GLib
    • Provides C API.
  2. Cpp-Markdown, Most C++ code but it is quite slow and little bit bloated. On the other hand it is quite easy to understand and modify, Depends on boost-1.35.

    Advantages

    • Depends only on boost
    • Written in C++, looks like less dangerous
    • Licensed under MIT.

    Disadvantages

    • Slow (it is still about 10 times faster then Perl implementation, but about 10 times slower than Discount)
  3. Discount, This is the code I use for my blog http://art-blog.no-ip.info/cppcms/blog and wiki http://art-blog.no-ip.info/wikipp/en/page/main. It is written by hardcore C programmer and quite hardly mantainable (even the developer activly maintains it).

    Advantages

    • Extremely fast
    • Written in pure C (no 3rd part dependencies).
    • Actively maintained
    • Has permissive 3 clause BSD license

    Disadvantages

    • Almost impossible to maintain (even I could remove/add some fatures).
    • Has only FILE API, so I should tweak the code to make it work with general buffer.
    • Licensed under 4 clause BSD license that is incompatible with GPL. It is problematic if you want to use it not as part of your GPL-ed software.

Why do I know them so much?

I'm developing CppCMS, so I need a good markdown to HTML convertor. When I picked one (Discount), it was the only solution. Since then I've needed to replace it due to licensing issues. That said, I still quite like it because it is the fastest Markdown solution.

P.S.: If you want C++ wrapper for Discount, take a look on http://cppcms.svn.sourceforge.net/viewvc/cppcms/cms/trunk/cxxmarkdown/, It is not the latest version, but it is already tweaked.

EDIT: I have just visited Discount site and I had found that it had added a non-FILE API as well. So now it is real library.

EDIT 2: If you find better implementation or write your own under FOSS license, let me know ;)

EDIT 3: as cloose commented, discount had changed the license to 3 clause BSD.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文