阅读 644

Markdown 版本演进

摘要:本文主要是梳理 Markdown 的主要版本变化,使用的是提纲的形式,列出了常见的功能支持和差异,阅读大约需要 3 分钟,可以直接看思维导图。

Markdown

  • 初始版本:2004-03-19
  • 最新版本:2004-12-17 , V1.0.1
  • 作者:John Gruber 和 Aaron Swartz(互联网之子,已逝)
  • 语言: 第一个版本为 Perl,目前有其他实现
  • 网站:
  • 特性:易读易写
    • 文字格式:粗体,斜体
    • 插入内容:标题,图片,链接,引用,水平线,块(`)
    • 功能:列表(无序,有序)
    • 限制:
      • 不支持表格
      • 块级标签必须前后空行,且不能被空格或制表符缩进
      • 块级标签内不能使用 Markdown 语法
      • 支持列表、段落、引用嵌套,方法为每行行首使用4个空格或1个制表符进行缩进

CommonMark

  • 初始版本:2012 年发起,2014-10-25 发布 Release 0.5
  • 最新版本: V0.28.1(2017-8-2)
  • 作者:Jeff Atwood 和 John MacFarlane 为首的小组
  • 语言: 实现版本众多,commonmark.js 和 cmark 是最广泛。
  • 网站:
  • 特性:严格定义了 Markdown 语法转为 Html 的实现

GitHub Flavored Markdown (GFM)

  • 初始版本:2017-08-01,V0.28-gfm
  • 最新版本:2018-09-10,V0.28.3.gfm.16
  • 作者:Github
  • 语言:C 语言,forked from commonmark/cmark
  • 网站:
  • 特性:描述代码项目功能和变更
    • 基于 CommonMark 的 cmark 分支
      • 文字格式新增:删除线(~~)
      • 插入内容新增:自动链接,修订版本(+/-)
      • 功能新增:简单表格(支持对齐:),任务列表,代码块及高亮功能(```)
      • 限制:
        • Html 支持限制
        • 列表嵌套方法:改为每次嵌套缩进两个空格

Markdown Extra

  • 初始版本:First release 1.3 (11 Apr 2013)
  • 最新版本:1.8.0 (14 Jan 2018)
  • 作者:Michel Fortin
  • 语言:初始版本为 PHP
  • 网站:github.com/michelf/php…
  • 特性:加强网页展示功能
    • 基于 Markdown
      • 插入内容新增:
        • 标题增加锚点属性(方便引用,样式,属性设置)
        • 增加脚注
        • 缩写备注(HTML tag
      • 功能新增:
        • 表格(支持对齐:)
        • 任务列表
        • 与 GFM 相似的代码块及代码高亮功能
      • 修改:
        • 内嵌 Html:块标签可缩进不超3空格,可在块标签使用 Markdown 语法
        • 强调:两字词中间的下划线不会被解释成强调
        • 不支持多词强调,反斜杠使用替代的 : 和 |

MultiMarkdown

  • 初始版本:2011 年 4 月
  • 最新版本:V6 (2018.02.02)
  • 作者:Fletcher T. Penney
  • 语言
    • 初始版本为 perl
    • 版本 V3 后基于 peg-markdown 项目重构为 C 语言
    • 使用 PEG(解析表达文法)处理文本
  • 网站:
  • 特性:加强导出转换功能
    • 基于 Markdown,兼容 PHP Markdown Extra
      • 插入内容新增:支持脚注,参考文献,缩略语,交叉引用,上下标(^,~)
      • 功能新增:支持元数据,数学公式(MathJax),部分复杂表格,修订功能(CriticMarkup), 内嵌其他文件,目录(TOC)
      • 修改 Html 块内支持,导出支持 HTML,LaTeX ,OPML ,OpenDocument Text document

Pandoc's Markdown

  • 初始版本:2006
  • 最新版本:V2.3
  • 作者:John MacFarlane
  • 语言: Haskell
  • 网站:
  • 特性:多格式文档的转换工具
    • 根据配置可以支持多种 Markdown 扩展格式

以上内容做成一张思维导图,使用 Atom + markdown-mindmap,由于格式不支持 SVG,做了转换为 PNG 上传,如果满足不了无损需求,请到百度网盘文件下载

思维导图

版本演进,公众号ProgramLife042

参考文献

  1. 感谢 John Gruber 和 Aaron Swartz 给我们带来如此美妙的 Markdown
  2. 参考了大量的文章:
    2.1 维基百科
    2.2 Markdown 原始的John Gruber站点
    2.3 少数派 Markdown 专题
    2.4 Commonmark 官网
    2.5 GitHub Flavored Markdown 官网
    2.6 PHP Markdown Extra 官网
    2.7 Multimarkdown 官网
    2.8 Pandoc 官网 Markdown 帮助
  1. 博客是我学习过程的输出,希望你有所收获。
  2. 有想法请留言,共同探讨学习。
  3. 由于博主能力有限,文中可能存在描述不正确,欢迎指正、补充!
  4. 你也可以关注我的公众号:ProgramLife042,名称:风之程序人生,方便接收最新内容。
    公众号