前一段发现有 Commonmark 这个试图把 Markdown 标准化的尝试。

稍微看了一下觉得质量不错,挺正经的,也有开发者支持 (还未 1.0 的现在已经有不少实现。pandoc 的作者 jgm 给 C 和 JS 各写了一个),感觉可以上船。

我想看看能不能用来做一个 帮助编辑 md 的东西,比如一个 md 的 linter 或Language Service,所以比较了一下。

我想要的特性:

  • parser
    • AST 可以对应到原始文件 (行、列)
    • 在原始文件部分被修改时,可以增量 parse
  • renderer
    • 可自定义特定 md block 的渲染 (一些 html 后端允许的格式不同,如 zhihu 的破编辑器)
  • TS 支持
  • 能 html2md

比较

jgm/commonmark.js

markdown-it/markdown-it

jonschlinkert/remarkable

marked

showdownjs/showdown