本文作为 Markdown 系列的第二篇,对上一篇使用 Markdown 写技术博客,我踩过的 6个坑博客提到的版本变迁进行简要的提纲说明。
如果不想读文章,请直接看思维导图,使用 Atom + markdown-mindmap 制作,由于格式不支持 SVG,转换为 PNG 显示,如果满足不了无损需求,请到百度网盘文件下载:
Markdown 版本演进思维导图

Markdown

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

CommonMark

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
  • 网站:https://github.com/michelf/php-markdown
  • 特性:加强网页展示功能
    • 基于 Markdown

      • 插入内容新增:

        • 标题增加锚点属性(方便引用,样式,属性设置)
        • 增加脚注
        • 缩写备注(HTML tag
      • 功能新增:
        • 表格(支持对齐:)
        • 任务列表
        • 与 GFM 相似的代码块及代码高亮功能
      • 修改:
        • 内嵌 Html:块标签可缩进不超3空格,可在块标签使用 Markdown 语法
        • 强调:两字词中间的下划线不会被解释成强调
        • 不支持多词强调,反斜杠使用替代的 : 和 |

MultiMarkdown

  • 初始版本:2011 年 4 月
  • 最新版本:V6 (2018.02.23)
  • 作者:Fletcher T. Penney
  • 语言
    • 初始版本为 perl
    • V3 后基于 peg-markdown 项目重构修改为 C 语言
    • 使用 PEG(解析表达文法)处理文本
  • 网站:
  • 特性:加强导出转换功能
    • 基于 Markdown,兼容 PHP Markdown Extra

      • 插入内容新增:支持脚注,参考文献,缩略语,交叉引用,上下标(^,~)
      • 功能新增:
        • 支持元数据
        • 数学公式(MathJax),行内\(,块\)$
        • 部分复杂表格
        • 修订功能(CriticMarkup)显示修订痕迹
        • 内嵌其他文件
        • 目录(TOC)
      • 修改
        • 换行方式改为行末使用\换行(原生Markdown使用2个空格换行)
        • Html 块内语法支持
        • 导出支持 HTML,LaTeX,OPML,OpenDocument Text document

Pandoc's Markdown

参考文献

  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,名称:风之程序人生,方便接收最新内容。

Markdown 版本演进的更多相关文章

  1. debian的版本演进

    debian有三个发行版本,stable版.testing版和unstable版. 其中,unstable版本是开发者正在开发的版本,它里面保存着debian的开发者当前的工作.这个版本是不断在被更新 ...

  2. 一个老鸟发的公司内部整理的 Android 学习路线图 Markdown 版本

    jixiaohua发了一篇一个老鸟也发了一份他给公司内部小伙伴整理的路线图.另一份 Android 开发学习路线图.可惜不是MarkDown格式的,所以jixiaohua直接上传的截图,在jixiao ...

  3. 使用 Markdown 写技术博客,踩过的 6个坑

    目录 Markdown 特性 Markdown 简介 常用语法 为什么流行 设计哲学 工具支持 版本演进 标准化之路 踩过了坑 平台帮助文档 语法差异 显示效果 我的最佳实践 摘要:本文记录我在使用 ...

  4. SLA 99.99%以上!饿了么实时计算平台3年演进历程

    作者介绍 倪增光,饿了么BDI-大数据平台研发高级技术经理,曾先后就职于PPTV.唯品会.15年加入饿了么,组建数据架构team,整体负责离线平台.实时平台.平台工具的开发和运维,先后经历了唯品会.饿 ...

  5. [译文]选择使用正确的 Markdown Parser

    以下客座文章由Ray Villalobos提供.在这篇文章中Ray将要去探索很多种不同的Markdown语法.所有的这些MarkDown变种均提供了不同的特性,都超越传统的Markdown语法,却又相 ...

  6. CentOS以及Oracle数据库发展历史及各版本新功能介绍, 便于构造环境时有个对应关系

    CentOS版本历史 版本 CentOS版本号有两个部分,一个主要版本和一个次要版本,主要和次要版本号分别对应于RHEL的主要版本与更新包,CentOS采取从RHEL的源代码包来构建.例如CentOS ...

  7. 像编程一样写文章—Markdown

    Markdown是什么 是一种极其简单的标记语言,写的时候只需要普通编辑器即可: 它可以使文本内存具有某种格式: Markdown设计理念使文本易读.易写 文件后缀名:.md . .markdown. ...

  8. 移动5年 Android生态系统的演进

    由Google.HTC.Qualcomm联手打造的第一部Android手机G1,开启了移动时代的Andr​​oid纪元(如图1所示),直到现在Android也是唯一能在移动市场上与iOS相抗衡的平台. ...

  9. 使用Markdown写文档

    转载于:http://blog.csdn.net/xiahouzuoxin/article/details/19752603 Markdown是一种网络书写语言,其目标是实现易读易写,且兼容HTML语 ...

随机推荐

  1. P3694 邦邦的大合唱站队

    题目背景 BanG Dream!里的所有偶像乐队要一起大合唱,不过在排队上出了一些问题. 题目描述 N个偶像排成一列,他们来自M个不同的乐队.每个团队至少有一个偶像. 现在要求重新安排队列,使来自同一 ...

  2. R执行报错:Error in `[<-.ts`(`*tmp*`,...only replacement of elements is allowed

    原因: pred$mean是Time-Series类型,rbind函数不支持.通过as.double将其转换成double类型即可. 修改前代码: all_predata_time <- dat ...

  3. Js apply()使用详解

    Js apply方法详解 我在一开始看到javascript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了,在这 ...

  4. ddt 数据处理调用excel数据建模

    1.数据模型: 2.数据处理 最终返回数据:[(),()] 格式 ddt调用: import ddtimport unittest @ddt.ddtclass Test(unittest.TestCa ...

  5. centos下Zabbix Agent端部署和安装

    首先重复一下前面的规划 server端:  192.168.136.144    centos6.5 (虚拟机) agent端:    192.168.136.155    centos6.5( 虚拟 ...

  6. 典型CAN通讯电路(带隔离)

    典型CAN通讯电路(带隔离) CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由德国BOSCH公司开发的,并最终成为国际标准(ISO 11898),是国际上 ...

  7. 【vue】父子组件间通信----传值

    官方文档参考 (一)父组件 向 子组件 传值 ①在父组件中调用子组件处,绑定要传的数据data1, 如 <nav  :data1=" "  ></nav> ...

  8. 0CO_PC_ACT_10 不能提取NV类别的数据

    今天用 BW 标准数据源 0CO_PC_ACT_10 提取数据时,发现物料有一项数据[没有被分摊]无法取到. 根据SAP的解释,此项不在后台存数,通过前台动态生成. For the virtual c ...

  9. MySQL的安装步骤

    MySQL5.6.43下载地址:链接: https://pan.baidu.com/s/1v0HZU_OnDClNxd5QIKDRMg 提取码: jy9s 1.解压mysql-5.6.43-winx6 ...

  10. C++引用的用处

    原文:http://www.cnblogs.com/ddx-deng/archive/2012/12/16/3755864.html 一.什么是“引用”?声明和使用“引用”要注意哪些问题? 答:引用就 ...