Cmark是 C语言实现的Markdown解析器,具有规范的Markdown语法,提供以下内容:
共享库( libcmark),可以将CommonMark文档解析为抽象语法树(AST)、操作AST并将文档呈现为HTML、groffman、LaTeX、CommonMark或AST的XML表示的函数。C程序(cmark):一个用于解析和输出CommonMark文档的命令行程序。优点轻便:用标准C99编写,没有外部依赖,已经过MSVC、gcc、tcc和clang测试。快:可以在眨眼间呈现Markdown版本的《WarandPeace》(在10年前的笔记本电脑上为127毫秒,而眨眼为100-400毫秒),这个速度比原始 Markdown.pl快10000倍。准确:通过了所有CommonMark一致性测试。标准化:Cmark跟其他标准 CommonMark库的工作方式是完全相同的,比如,你可以在客户端使用commonmark.js预览那些即将在服务器上使用cmark呈现的内容,不用担心内容格式有变化。坚固:已使用 americanfuzzylop 进行了广泛的模糊测试,测试套件包括病态案例,这些案例曾经让其他Markdown解析器陷入困境。(例如,数千个深度嵌套的括号或引号)。灵活:CommonMark输入被解析为AST,该AST可以在渲染之前以编程方式进行操作。多种渲染器:支持HTML、groffman、LaTeX、CommonMark和自定义XML格式的输出,且很容易编写新的渲染器来支持其他格式。自由:BSD-2许可libcmark在python、lua、ruby和其他动态语言中也很容易使用。
安装构建C程序(cmark)和共享库(libcmark)需要cmake,如果你要修改 scanners.re ,那还需要 0.14.2 以上版本的 re2c,用于从scanner.re生成scanner.c,事实上,存储库中已经包含了一个预生成的scanner.c,以减少构建依赖。如果有GNUmake,可以简单地make, maketest和 makeinstall
评论