Markdown 是一种轻量级的标记语言,可用于在纯文本文档中添加格式化元素。Markdown 由 John Gruber 于 2004 年创建,如今已成为世界上最受欢迎的标记语言之一。
- 专注于文字内容;
- 纯文本,易读易写,可以方便地纳入版本控制;
- 语法简单,没有什么学习成本,能轻松在码字的同时做出美观大方的排版。
使用 Markdown 与使用 Word 类编辑器不同。在 Word 之类的应用程序中,单击按钮以设置单词和短语的格式,并且,更改立即可见。而 Markdown 与此不同,当你创建 Markdown 格式的文件时,可以在文本中添加 Markdown 语法,以指示哪些单词和短语看起来应该有所不同。
例如,要表示标题,只须在短语前面添加一个井号即可(例如, # Heading One
)。或者要加粗一个短语,只须在短语前后各加两个星号即可(例如,**this text is bold**
)。可能需要一段时间才能习惯在文本中看到 Markdown 语法,尤其是如果你已习惯了所见即所得的应用程序。以下屏幕截展示了 Markdown 文件在 [Notepad++ 文本编辑器] 中显示的效果。
你可以使用文本编辑器为纯文本文件添加 Markdown 格式的元素。或者,你也可以安装针对 macOS、Windows、Linux、iOS 和 Android 操作系统的 Markdown 应用程序。或者还可以使用一些基于 Web 的应用程序用于 Markdown 编写。
依赖于你所使用的应用程序,你可能无法实时预览格式化的文档。但是没关系。根据 Gruber 的说法,Markdown 的语法被设计为可读性强且不显眼,因此即使 Markdown 文件中的文本未经过渲染也易于阅读。
Markdown 语法的首要设计目标是尽可能易读。基于这个目标,Markdown 格式的文档能够以纯文本形式原样发布,而不会看起来像被填满了标签或格式化指令。
Markdown 起源
据 GitHub Flavored Markdown(GFM)官方文档介绍,Markdown是由约翰·格鲁伯(JohnGruber)在亚伦·斯沃茨(Aaron Swartz)的帮助下开发,并在2004年发布的标记语言。
其设计灵感主要来源于纯文本电子邮件的格式,目标是让人们能够使用易读、易写的纯文本格式编写文档,而且这些文档可以转换为HTML(Hyper Text Markup Language,超文本标记语言)文档。
简单点说,Markdown就是由一些简单的符号(如*/-> [] ()#)组成的用于排版的标记语言,其最重要的特点就是可读性强。
Markdown的基本语法,如下图所示。
可以说,Markdown相当于简化了的HTML,它只提供用户最常用的语法格式,更易读和易写,用户可以不必关心复杂的HTML标签,只专注于写作就行了。
当一些特殊需求(如设置图片的大小)无法通过现有的Markdown标记实现时,也可以使用HTML来实现。
Markdown 演进
起初Markdown主要用于网络写作,后来人们希望Markdown能够应用到更多的领域,如写书、记笔记、写文档、写幻灯片等。
由于Markdown本身功能有限,一些特定的需求和场景无法被满足,因此产生了许多扩展语法,这些语法在基础语法之上新增了如表格、任务列表、围栏代码块等功能。
Markdown演进史
- 2004年,Markdown发布,作者是John Gruber。
-
2006年,Pandoc's Markdown发布,作者是John MacFarlane。
此版本对Markdown语法有额外的扩充和些许修正,这使Markdown可以转换为更多的文件格式,Pandoc堪称文件转换领域的“瑞士军刀”。 -
2011年,MultiMarkdown(简称MMD)发布,作者是Fletcher T.Penney。
此版本让Markdown可以转换为更多的文件格式,包括HTML/XHTML、LATEX、OpenDocument、OPML(Outline Processor Markup Language,大纲处理标记语言)。 -
2013年,Markdown Extra发布,作者是Michel Fortin。
此版本最初使用PHP语言实现,新增了围栏代码块、具有id/class属性的元素、表格、任务列表、脚注、缩写等功能。 -
2014 年,CommonMark 规范发布,主要作者是 Jeff Atwood 和 John MacFarlane。
CommonMark旨在为人们提供一个标准的Markdown语法规范和参考实现。
Markdown标准化工作开始于2012年,2014年9月,由于John Gruber反对在这一工作中继续使用“Markdown”这个名字,其被更名为CommonMark。 -
2017年,GitHub发布了GitHub Flavored Markdown,即GFM。
此版本遵循CommonMark规范,新增了围栏代码块、表格、删除线、自动链接、Emoji表情和任务列表等功能,是目前使用最广泛的版本。
标准语法CommonMark
由于不同版本的扩展语法太多,John Gruber对Markdown语法也没有指定明确的规范,在非正式规范中也存在一些含糊不清的地方,一些扩展语法慢慢偏离了最初的参考实现方式。另外,用户的写作习惯和编辑器的解析规则也不尽相同,这就导致Markdown文本在不同编辑器上解析时可能会出现一些问题。
这些问题促使一些机构和开发人员努力对Markdown语法进行标准化,CommonMark(http://commonmark.org/)就是这样一个产物。它为Markdown提出了一个标准的、明确的语法规范,以及一套全面的测试,根据此规范可以验证Markdown的实现结果,GitHub Flavored Markdown(GFM)遵循的就是CommonMark规范。
不过,John Gruber认为Markdown不应该完全标准化,因为不同的网站和用户有不同的需求,没有一种语法可以让所有人都满意。
最流行的扩展语法GFM
目前最流行的扩展语法是GitHub Flavored Markdown,简称GFM,毕竟GitHub是全球最大的程序员“交友”网站。
GFM语法示例如下。
上述语法使用Typora编辑器渲染后的效果如下图所示。