NOTE : 本文是对文章 Markdown语法说明(简体中文版) 的化简,以便于学习。
概述
宗旨
Markdown的目标是实现易读易写。Markdown的语法全是由一些符号所组成的,这些符号经过精挑细选,其作用一目了然。
兼容 HTML
HTML是一种发布的格式,Markdown是一种书写的格式。可以直接在Markdown中插入HTML标签,而不需要额外标注。
要制约的只有一些HTML区块元素——比如 <div>
、<table>
、<pre>
、<p>
等标签,必须在前后加上空行与其他内容区隔开,还要求它们的开始标签与结尾标签不能用制表符或空格来缩进。Markdown的生成器足够智能,不会在HTML区块标签外加上不必要的<p>
标签。
例子如下,在Markdown中插入HTML表格:
这是一个普通段落
<table>
<tr>
<td>Foo</td>
</tr>
</table>
这是一个普通段落
请注意,在HTML区块标签间的Markdown格式语法将不会被处理。但是,Markdown语法在HTML区段标签间是有效的。
特殊字符自动转换
在HTML文件中,有两个字符需要特殊处理:<
和&
。Markdown让你可以自然地书写字符,需要转换的由它来处理好了。
例如,你想要在文档中插入一个版权符号 ©
,可以这样写:
©
Markdown会保留不动。而你若写:
AT&T
Markdown 会将它转换为:
AT&T
类似的情况也会发生在<
符号上。需要注意的是,code范围内,不论是行内还是区块,<
和&
两个符号都一定会被转换为HTML实体。
区块元素
段落和换行
一个Markdown段落是由一个或多个连续的文本行组成,它的前后要有一个以上的空行(看起来是空的,如果某行只包含空格和制表符,也算作空行)。普通段落不该用空格和制表符来缩进。
由一个或多个连续的文本行组成 这句话其实暗示了Markdown允许段落内的强迫换行(插入换行符)。
标题
Markdown支持两种标题的语法格式,类 Setext 和类 atx形式。
类setext的形式是用底线的形式,利用=
(最高阶标题)和-
(第二阶标题),例如:
This is an H1
=============
This is an H2
-------------
任何数量的=
和-
都可以。
类atx的形式是在行首插入1到6个#
,对应标题1到6阶,例如:
# 这是 H1
## 这是 H2
###### 这是 H6
也可以选择闭合:
# 这是 H1 #
## 这是 H2 ##
###### 这是 H6 ######
区块引用
在行首加上>
,表示这是区块引用,例如:
> 这是区块引用,
> 有两段话。
>
> 这是第二段。
也可以只在整个段落的第一行最前面加上>
:
> 这是区块引用,
有两段话。
> 这是第二段。
区块引用也可以嵌套,引用的区块内也可以使用其他的Markdown语法:
> ## 这是一个标题
>
> 1. 这是第一行列表项
> 2. 这是第二行列表项
>
> > 这是嵌套引用
>
列表
Markdown 支持有序列表和无序列表。
无序列表使用星号、加号或者减号作为列表标记:
* red
* green
* blue
有序列表使用数字接着一个英文句点:
1. red
2. green
3. blue
列表项目可以包含多个段落,每个项目下的段落都必须缩进4个空格或是1个制表符。
如果要在列表项目内放进引用和代码区块,那>
就需要缩进,代码区块要缩进两次:
* 列表项包含引用和代码区块
> 这是引用
> 在列表项中的引用
<代码写在这里>
当然,项目列表很可能会不小心产生,为了避免,要加上反斜杠:
1986\. What a great season.
代码区块
Markdown中建立代码区块非常简单,只要缩进4个空格或是一个制表符就可以。
分割线
可以在一行中用三个以上的星号、减号、底线来建立一个分割线,行内不能有其他东西,你也可以在星号或是减号中间插入空格。
* * *
***
*****
---
——————————————
区段元素
链接
两种链接语法:行内式和参考式。不管哪一种,链接文字都用 [方括号] 来标记。
行内式如下:
这是一个 [链接](http://www.example.com/ "Title") 例子。
也可以使用相对路径。参考式如下:
这是一个 [链接] [1] 例子
接着在任意处把标记的链接内容定义出来:
[1](http://www.example.com/ "Title")
强调
使用星号和底线作为标记强调字词的符号,
*single asterisks*
**double asterisks**
如果*
和_
两边都有空白的话,他们就只会被当成普通的符号。
代码
如果要标记一小段行内代码,你可以用反引号 (`
) 把它包起来。也可以使用多个反引号来开启和结束代码区段。代码区段的开始和结束都可以放入一个空白。在代码区段内,&
和方括号都会自动转换成HTML实体。
图片
使用和链接很相似的语法来标记图片,同样允许使用两种样式:行内式和参考式。
行内式:

参考式:
![图片1][id]
[id]: url/path/img.jpg "Optional title attribute"
其他
自动链接
Markdown支持以比较简短的自动链接形式来处理网址和电子邮箱,只要用方括号包起来,例如:
<http://example.com/>
邮箱的自动链接类似。
反斜杠
可以利用反斜杠来插入一些在语法中有其它意义的符号。支持以下这些符号前面加上反斜杠来帮助出入普通的符号:
\ 反斜杠
` 反引号
* 星号
_ 底线
{} 花括号
[] 方括号
() 括弧
# 井字号
+ 加号
- 减号
. 英文句点
! 惊叹号