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语 ...
随机推荐
- 记一次js之button问题
问题描述:记得某天,发现一件让我非常气愤的事情,居然因为一个按钮导致页面跳转失败或者是根本跳转不了界面,哪怕404也不给我报. 问题回现步骤: (1)正常输入url localhost:8080/te ...
- CANopen和DeviceNet有何异同
>> 欢迎您,客人: 登录 | 注册 | 忘记密码 | 在线 | 搜索 | 帮助 DND开发论坛 ◇ DeviceNet技术讨论区 ◇ [返回] [讨论]CANopen和DeviceN ...
- EasyX_无法填充圆颜色的问题
官网:https://www.easyx.cn/ 在线帮助文档:https://docs.easyx.cn/ 目标:生成一个边框为黄色,填充为蓝色的圆 遇到的问题:使用以下代码,只能生成边框为黄色的圆 ...
- Linux中kafka部署和集群
1.下载kafka安装包kafka_2.12-1.1.0. tar -xzvf kafka_2.11-0.8.2.1.tgz #解压 mv kafka_2.11-0.8.2.1 /usr/local/ ...
- 深入理解PHP 数组之count 函数
count()PHP count() 函数用于计算数组中的单元数目或对象中的属性个数,返回数组的单元个数或对象中的属性个数.语法:int count( mixed var [, int mode] ) ...
- A1084
输入:只能输入A-Z(不区分大小写),0-9和下划线: 第一行输入应输入字符串,第二行输入实际输入字符串. 输出:按大写输出缺少的字符,每个字符输出一次. 注意: 1.由于不区分大小写,则需要将小写字 ...
- 对sql作业的总结(PostgreSQL的递归查询)
已知条件如下: CREATE TABLE appointment ( emp_id integer NOT NULL, jobtitle ) NOT NULL, salary ,) NOT NULL, ...
- mssqlserver分区表的左值与右值
参考官方文档: https://docs.microsoft.com/zh-cn/sql/t-sql/statements/create-partition-function-transact-sql ...
- PyQt5 笔记(02):嵌套布局
如前一篇笔记,我们还是只讨论两层嵌套布局的情况. 前面的布局有一个缺点:有三个内层布局,则需要三个空部件.那若有十个内层布局呢?显然会让人不舒服. 刚才在玩 Qt Designer 时,发现了一个更好 ...
- 1. [文件]- 文件类型,文件open模式
1.文件类型:文本文件和二进制文件 硬盘中的文件保存为01010101格式,一般读取文件是把文件从硬盘中读取到内存中. 文本文件需要进行格式转换才能读取出来. 二进制文件一般用于传输 二进制文件:视频 ...
