Cmark

C 版本 Markdown 解析器
授权协议 MIT
开发语言 C/C++ Python
所属分类 程序开发、 Markdown开发包
软件类型 开源软件
地区 不详
投 递 者 尹雅健
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Cmark 是 C 语言实现的 Markdown 解析器,具有规范的 Markdown 语法,提供以下内容:

  • 共享库 ( libcmark),可以将 CommonMark 文档解析为抽象语法树 (AST)、操作 AST 并将文档呈现为 HTML、groff man、LaTeX、CommonMark 或 AST 的 XML 表示的函数。
  • C 程序(cmark):一个用于解析和输出 CommonMark 文档的命令行程序 。

优点

  • 轻便:用标准 C99 编写,没有外部依赖,已经过 MSVC、gcc、tcc 和 clang 测试。
  • :可以在眨眼间呈现 Markdown 版本的《War and Peace》(在 10 年前的笔记本电脑上为 127 毫秒,而眨眼为 100-400 毫秒),这个速度比原始 Markdown.pl 快 10000 倍。
  • 准确通过了所有 CommonMark 一致性测试。
  • 标准化:Cmark 跟其他标准 CommonMark 库的工作方式是完全相同的,比如,你可以在客户端使用 commonmark.js 预览那些即将在服务器上使用 cmark 呈现的内容,不用担心内容格式有变化。
  • 坚固已使用 american fuzzy lop 进行了广泛的模糊测试 ,测试套件包括病态案例,这些案例曾经让其他 Markdown 解析器陷入困境。(例如,数千个深度嵌套的括号或引号)。
  • 灵活:CommonMark 输入被解析为 AST,该 AST 可以在渲染之前以编程方式进行操作。
  • 多种渲染器:支持 HTML、groff man、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,以减少构建依赖。
  • 如果有 GNU make,可以简单地 make, make test make install
  • 环境 1.CentOS7.2 2.用户:root 3.CMake 2.8.10.2 问题说明 今天在centos7.2下面源码编译安装mysql的时,在编译mysql的时候报了一个错误: cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ -DDEFAUL

  • 前言 想把开发环境转移到Linux上,同时也准备阅读些GitHub上的开源代码,开源项目一般都是用cmake管理的。cmake所做的事其实就是告诉编译器如何去编译链接源代码。你也许想问不是有makefile吗,为什么还要它?这里就牵涉到跨平台问题。在Windows平台下是通过project文件去管理这些的,如果不用cmake,那我们为Windows和Linux系统就要写对应的project文件和m

  • 1.cmake下载地址: https://github.com/Kitware/CMake/releases?page=1 2.环境硬件: 本次使用:cmake-3.22.1.tar.gz ubuntu版本: 18.04 3.在解压的文件夹下 执行 sudo apt-get install libssl-dev ./bootstrap make sudo make install hash -

 相关资料
  • 我已经在本地计算机中配置了Maven3.0.3。已经安装了m2e eclipse插件。但是当我试图使用maven-archetype-webapp创建一个新的maven项目时,我会遇到以下异常。

  • 我正在阅读这些文档,仍然不知道Maven是如何决定下载哪些版本的插件的。 例如,考虑以下简单场景: 一个空的本地存储库 默认settings.xml 运行一个简单的maven命令。例如,用于,如Maven在5分钟文档中所述。 运行命令后,Maven做的第一件事就是下载一堆插件。 Maven正在下载的一些插件包括: maven-clean-plugin-2.4.1 maven-install-plu

  • 功能介绍 获取版本分析报告数据,包括表格详情数据与趋势数据,所获取数据与 https://mtj.baidu.com 中报告数据一致 接口 https://openapi.baidu.com/rest/2.0/mtj/svc/app/getDataByKey 此处仅列本接口特有参数,公共参数请参考报告级API说明 获取表格数据 参数名 参数类型 是否必须 描述 method string 是 v

  • 本文向大家介绍Python2.6版本pip安装步骤解析,包括了Python2.6版本pip安装步骤解析的使用技巧和注意事项,需要的朋友参考一下 首先看到这句话,给你一个忠诚的建议,除去平时出现疑难问题上各种博客搜索问题之外,安装部署一律去官方网站查找,尽量不要看到一个博客写了各种方法,就原原本本的照着人家的博客来一遍,可以当做参考,但是下载地址什么的最好自己去官网找一下。 官网是这个https:/

  • 在产品正式发布后,PM 的大部分工作是围绕升级迭代进行的:定义产品,然后跟踪研发,最终面向用户发布——「设计→开发→发布」的过程循环往复…… 理想情况下,产品在迭代中不断演化,用户伴随迭代不断增长,直至产品走向成功。但不幸的是,很多产品最后均以失败告终,排除战略、市场、运营等原因,在产品开发循环中缺少「衡量」的反馈环节,也是产品失败的常见原因——很多时候,我们以为产品在迭代中螺旋上升,实际上仅仅在

  • 我刚切换到Android Studio 2.1,在尝试编译之前运行的应用程序时出现了以下错误: 我已经更新了主项目的gradle。生成文件以强制生成Java 1.7代码: 我还更新了gradle模块。按如下方式构建以设置java版本: 正在使用Maven构建子模块。在pom.xml文件中,我还尝试强制生成1.7代码。 我知道我正在使用一个组装工件,它包含了从属模块,但我没有更改任何从属模块,并且上

  • 我刚刚安装了android studio,但gradle show的错误如下。插件版本为7.0,Gradle版本为7.0.2。此外,我试图下载到另一个gradle版本,但仍然无法完成构建,它显示了相同的错误。 配置根项目我的应用程序时出现问题。 无法解析配置“: classpath”的所有工件。无法解析com.android.tools.build: gradle: 7.0.0。项目要求:

  • 我正在尝试在fuse服务器上部署一个捆绑包,但对其进行了一些更改。我添加了unirest依赖项来执行REST调用。 该版本在本地计算机和 Jenkins 上工作正常,但捆绑包会引发错误,并且无法在 fuse 服务器上部署。 它抛出以下错误: 以下是我的pom.xml: