你是否真的知道 Markdown
3 分钟读完

你是否真的知道 Markdown

你是否真的知道 Markdown

我曾经是Markdown 的鼓吹者,一说到和文档相关的事情,都会坚定的推广 markdown。然而我却一直不明白为什么有的markdown支持table,有的却不支持,今天深入了解了之后才发现,markdown没有那么简单。

Timeline

  • 2004年,博主 John Gruber 发明了 markdown,Aaron Swartz起到了重要的作用。值得注意的是,发明者 John Gruber 的职业并不是软件工程师,但是他用perl写了第一个markdown to html 的转换工具 markdown.pl
  • 2007年,pandoc支持了markdown
  • 2008年,stackoverflow发布并支持markdown
  • 2009年,GitHub开始使用 GitHub Flavored Markdown
  • 2012年,Jeff Atwood 组织了 Stand Markdown组织,商讨制定 markdown标准。
  • 2014年,标准制定,不过 John Gruber 不允许Jeff他们使用markdown,所以改名 commonMark。
  • 互联网技术标准制定机构 IETF 发布 RFC 7763RFC 7764 两份征求意见稿,收录 Markdown 格式作为互联网媒体标准格式text/markdown
  • 2017年,GitHub Flavored Markdown 基于 CommonMark Spec 发布了自己规范,支持表格、任务列表和删除线,禁止 HTML 原始标签。

markdown 乱象

从上面的时间轴可以看到:

  1. John Gruber在推出 markdown后就不管了,2004年之后没有发布任何更新。
  2. 所以社区衍生了很多种markdown实现和扩展,比如stackoverflow的TEXT::Markdown(命名风格都很C++啊)、早期的GFM、MultiMarkdown、Markdown Extra、CriticMarkup等等
  3. John Gruber很讨厌各种markdown扩展
  4. 所以各个工具的markdown语法会有所不同
  5. commonMark只是规范了Gruber版本的内容,也就是最基本的标记,并给出了 624个测试用例,这个很重要啊。

IDE的差异

所以各个平台/编辑器/IDE对markdown支持不统一也是由此而来。

  • Github支持GFM,在commonMark基础上支持了表格、任务列表和删除线
  • VS Code 只支持 CommonMark,但它使用了支持GFM扩展了table和删除线的 markdown-it 库来解析。
  • Bear app,Polar Bear Markup Language,自研的,非CommonMark。据说下个版本会支持table。。。
  • Typora,支持GFM
  • Ghost,同VS Code

有一个网站,可以看到各个工具支持的markdown语法。

扩展

很多编辑器都增加了对Markdown的扩展,比如,可以支持Mermaid以及PlantUML 生成各种流程图。

比如,VS Code 就支持Mermaid和PlantUML。Typora也支持。

Bear App不支持。

特别是PlantUML,简直是Mac用户的神器了,毕竟EA(enterprise architect)又贵又难用而且还只支持Windows。

VS Code用户可以看这个功能强大的插件Markdown Preview Enhanced

那么微信公众平台支持Markdown 么?

不支持

公众平台曲线支持markdown方式:

各种编辑器预览/发布后复制到公众平台,或者一些专门的工具导出复制过去。

比如我用 Bear 写内容,然后发布到博客前端观察(使用Ghost),然后复制到公众平台。

也可以用 Typora 编辑后复制过去

还有一些在线的工具,比如:


PS:John Gruber 的博客的广告位的费用每周要4000美元,实名羡慕。