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语 ...
随机推荐
- P3935 Calculating
题目描述 若xx分解质因数结果为\(x=p_1^{k_1}p_2^{k_2}\cdots p_n^{k_n}\),令\(f(x)=(k_1+1)(k_2+1)\cdots (k_n+1)\),求\(\ ...
- java 泛型数组列表
如下代码: package com.company; import java.lang.reflect.Array; import java.util.ArrayList; public class ...
- Mysql安装(win10 64位)
公司的测试数据库只有读的权限,而且还不能用IP和端口去访问,所有很多时候不方便(尤其是想练手的时候).闲着也是闲着,自己搭建一个Mysql数据库出来.以下操作,全部基于win10专业版 64位,仅供参 ...
- iOS 输入框限制输入字节数
iOS中限制输入框文字长度的方法有好多,百度一下,最常用的是这种: - (BOOL)textField:(UITextField *)textField shouldChangeCharactersI ...
- Linux入门基础(三):Linux用户及权限基础
用户基础 用户和组 每个用户都拥有一个userid 每个用户都属于一个主组,属于一个或多个附属组 每个组拥有一个groupid 每个进程以一个用户身份运行,受该用户可访问资源限制 每个可登陆用户拥有一 ...
- day 88 Vue学习之八geetest滑动验证
本节目录 一 geetest前端web中使用 二 xxx 三 xxx 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 geetest前端web中使用 下载gt文件,官网地址,下面我 ...
- Dataguard学习笔记
主库和备库之间的redo log传递,可以通过如下方式实现: 在主库端: log_archive_dest_1='主库本地路径' log_archive_dest_2='备库的net service名 ...
- 【转载】COM 组件设计与应用(十七)——持续性
原文:http://vckbase.com/index.php/wv/1264.html 一.前言 我们写程序,经常需要实现这样的需求: 例一.程序运行产生一个窗口,用户关闭的时候需要记录窗口的位置, ...
- 1997: [Hnoi2010]Planar
1997: [Hnoi2010]Planar 链接 分析: 首先在给定的那个环上考虑进行操作,如果环内有有两条边相交,那么可以把其中的一条放到环的外面去.所以转换为2-sat问题. 像这样,由于1-4 ...
- Mac下 通过 VMware Fusion 配置 windows 虚拟机的详细步骤
内容中包含 base64string 图片造成字符过多,拒绝显示