Markdown 版本演进
本文作为 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
- 初始版本: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 支持限制
- 列表嵌套方法:改为每次嵌套缩进两个空格
- 基于 CommonMark 的 cmark 分支
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 语法
- 强调:两字词中间的下划线不会被解释成强调
- 不支持多词强调,反斜杠使用替代的 : 和 |
- 插入内容新增:
- 基于 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
- 基于 Markdown,兼容 PHP Markdown Extra
Pandoc's Markdown
- 初始版本:2006
- 最新版本:V2.3
- 作者:John MacFarlane
- 语言: Haskell
- 网站:
- 特性:多格式文档的转换工具
- 根据配置可以支持多种 Markdown 扩展格式,自由配置启用或不用特性(+/-EXTENSION)
参考文献
- 感谢 John Gruber 和 Aaron Swartz 给我们带来如此美妙的 Markdown
- 参考了大量的文章:
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 帮助
- 博客是我学习过程的输出,希望你有所收获。
- 有想法请留言,共同探讨学习。
- 由于博主能力有限,文中可能存在描述不正确,欢迎指正、补充!
- 你也可以关注我的公众号:ProgramLife042,名称:风之程序人生,方便接收最新内容。
Markdown 版本演进的更多相关文章
- debian的版本演进
debian有三个发行版本,stable版.testing版和unstable版. 其中,unstable版本是开发者正在开发的版本,它里面保存着debian的开发者当前的工作.这个版本是不断在被更新 ...
- 一个老鸟发的公司内部整理的 Android 学习路线图 Markdown 版本
jixiaohua发了一篇一个老鸟也发了一份他给公司内部小伙伴整理的路线图.另一份 Android 开发学习路线图.可惜不是MarkDown格式的,所以jixiaohua直接上传的截图,在jixiao ...
- 使用 Markdown 写技术博客,踩过的 6个坑
目录 Markdown 特性 Markdown 简介 常用语法 为什么流行 设计哲学 工具支持 版本演进 标准化之路 踩过了坑 平台帮助文档 语法差异 显示效果 我的最佳实践 摘要:本文记录我在使用 ...
- SLA 99.99%以上!饿了么实时计算平台3年演进历程
作者介绍 倪增光,饿了么BDI-大数据平台研发高级技术经理,曾先后就职于PPTV.唯品会.15年加入饿了么,组建数据架构team,整体负责离线平台.实时平台.平台工具的开发和运维,先后经历了唯品会.饿 ...
- [译文]选择使用正确的 Markdown Parser
以下客座文章由Ray Villalobos提供.在这篇文章中Ray将要去探索很多种不同的Markdown语法.所有的这些MarkDown变种均提供了不同的特性,都超越传统的Markdown语法,却又相 ...
- CentOS以及Oracle数据库发展历史及各版本新功能介绍, 便于构造环境时有个对应关系
CentOS版本历史 版本 CentOS版本号有两个部分,一个主要版本和一个次要版本,主要和次要版本号分别对应于RHEL的主要版本与更新包,CentOS采取从RHEL的源代码包来构建.例如CentOS ...
- 像编程一样写文章—Markdown
Markdown是什么 是一种极其简单的标记语言,写的时候只需要普通编辑器即可: 它可以使文本内存具有某种格式: Markdown设计理念使文本易读.易写 文件后缀名:.md . .markdown. ...
- 移动5年 Android生态系统的演进
由Google.HTC.Qualcomm联手打造的第一部Android手机G1,开启了移动时代的Android纪元(如图1所示),直到现在Android也是唯一能在移动市场上与iOS相抗衡的平台. ...
- 使用Markdown写文档
转载于:http://blog.csdn.net/xiahouzuoxin/article/details/19752603 Markdown是一种网络书写语言,其目标是实现易读易写,且兼容HTML语 ...
随机推荐
- 经验总结13--EF配置
EF配置,开发前的准备及步骤. 使用V22013和EF6.1. 1.使用VS新建MVC项目. 2.创建实体类. 3.配置web.config的数据库链接字符串. <connectionStrin ...
- 使用sqoop过程
With Sqoop, you can import data from a relational database system or a mainframe(主机) into HDFS. The ...
- mysql安装后找不到sock文件
mysql rpm安装方式之后,启动找不到sock文件,经排查是之前安装的由mysql, 需要时yum list installed mysql 或者 rpm -qa |grep -i mysql ...
- pytest 框架自动化Selenium 之yield 使用
环境 python 3.7 由于3.0-3.5以下部分pytest可能有部分兼容问题安装建议2.7-2.9,3.5-最新 pip install pytest专属 pytest框架包 pip inst ...
- 存储过程定义多个游标多个begin
1.直接定义多个显示游标 CREATE OR REPLACE PROCEDURE ACC.DBP_REALCITYTRAFFICCNT IS CURSOR cur1 IS SELECT ... --第 ...
- javascript中的属性注意事项
1.函数原型prototype设置的对象是只读类型,所以不能修改(即栈只读).但是我们常常可以看到它被“修改‘’了.若对象中定义的属性和原型中属性一样,优先使用自定义属性. 例如代码: //原型 类似 ...
- PHP通过_call实现多继承
原文地址:http://small.aiweimeng.top/index.php/archives/53.html 上一篇讲到php可以通过接口是实现代码的复用. 那么这篇文章简单介绍下使用_cal ...
- C语言学习记录_2019.02.06
break语句的作用:当执行到break,则跳出循环,免去不必要的循环次数,节省时间和资源.-----跳出循环,结束循环: continue:跳过这一次循环剩下的语句,进入到下一轮循环.-----跳到 ...
- go学习笔记-环境安装
环境安装 环境安装 主要包含三个部分 运行环境及开发sdk 系统环境和路径配置 IDE配置 以mac环境为例,其他环境类似 运行环境及开发sdk 使用 brew 安装 brew install go ...
- Scala(四):对象
对象:Object 1.单例对象 2.伴生对象 3.扩展类或特质的对象 4.apply方法 5.应用程序对象 6.枚举1.单例对象 Scala中没有你静态方法或静态字段,可以用object这个语法结构 ...
