Markdown语法
Markdown语法
概述
之前使用dokuwiki系统做共享文档的平台,接触到了Markdown这种书写格式。最近开始折腾在github上搭建blog,又用到了Markdown,但是好多都忘光了,从头复习一下。Markdown的目标是易读易写,让作者专注于写作,不用太多关心排版的问题,即使不把Markdown格式转化为HTML,可读性依然很强。Markdown格式是可以以纯文档的方式发布,使用标签或是格式指令构成,可以兼容HTML。
区块元素
段落和换行
连续的文本组成一个段落,每个段落前后有一个以上的空行。每个段落不能使用空格或制表符来缩进,如果想要缩进只能使用HTML元素,比如: 
/ 
/
。
标题
Markdown格式中可以使用=
和-
两种底线形式来标注标题,例如:
这是标题1
==========
这是标题2
----------
这是标题1
这是标题2
*注:任何数量的=
和-
都有效果。
同时,在Markdown格式中,使用1-6个#
加一个空格可以标注1-6级的标题,同时可以选择性在最后使用给一个空格加同样数量的#
号来闭合。
# 这是标题1
## 这是标题2 ##
###### 这是标题6
这是标题1
这是标题2
这是标题6
区块引用
区块引用使用>
在每行的开头标记,也可以在每段开头进行标记,在区块引用中可以进行嵌套,例如:
> 这是一个区块引用的示例,
> 在每行的行的行首使用">"来标记区块。
这是一个区块引用的示例,
在每行的行的行首使用”>”来标记区块。
(这里分隔一下示例,看的更清晰一些。)
> 当然也可以在每段的段的段首标记,
本段都是在区块引用中。
> > 这是一个嵌套的区块引用。
当然也可以在每段的段的段首标记,
本段都是在区块引用中。这是一个嵌套的区块引用
在区块引用中可以使用其它Markdown语法,包括标题、列表、代码区块等,这些就不在这演示了。
列表
Markdown支持有序列表和无序列表。
无序列表使用*
、+
或-
作为标记,例如:
* 序列内容1
* 序列内容2
* 序列内容3
- 序列内容1
- 序列内容2
- 序列内容3
等同于+
:
+ 序列内容1
+ 序列内容2
+ 序列内容3
- 序列内容1
- 序列内容2
- 序列内容3
等同于-
:
- 序列内容1
- 序列内容2
- 序列内容3
- 序列内容1
- 序列内容2
- 序列内容3
有序列表使用数字后加一个.
的形式(数字可以不按顺序或是同一个数字):
1. 排序1
2. 排序2
3. 排序3
- 排序1
- 排序2
- 排序3
同一个数字:
1. 排序1
1. 排序2
1. 排序3
- 排序1
- 排序1
- 排序1
数字乱序:
3. 排序1
9. 排序2
1. 排序3
- 排序1
- 排序2
- 排序3
从示例中看到以上三种标记形式达到的效果是一样的,但是为了不转换成HTML时的可读性,还是尽量使用顺序数字标记。
如果在列表中分段、使用区块引用和代码区块等,需要在这些标记前使用1-3个空格来标记是在列表中,例如:
* 这是第一个列表中的第一段
这是第一个列表中的第二段
* 这是第二个列表
> 这是第二个列表中的区块引用
*这是第三个列表
这是第三个列表中的代码区块
这是第一个列表中的第一段
这是第一个列表中的第二段
这是第二个列表
这是第二个列表中的区块引用
这是第三个列表
<html>这是第三个列表中的代码区块</html>
###代码区块
如果想要写程序代码在文档中,直接在代码前加入4个空格就进入了代码区块中,所有代码区块中都会按照输入原样输出,上面已经使用了很多代码区块,这里就不在演示了。
分割线
可以使用三个以上的*
、-
、_
来插入一个分割线,此行内不能有任何其他的元素,可以在每个符号间插入空格,效果是一样,例如:
* * *
***
******
- - -
————————————
区段元素
链接
Markdown格式中支持两种形式的链接语法:行内式和参考式。两种形式的链接文字都使用[]
来标记。如果想在链接上加入title文字,组要使用""
把title文字包起来,例如:
这是一个[示例链接](http://test.com/ "test")有title。
[这是一个链接](http://test.com/)没有title。
如果链接本地资源(同一主机下的资源),可以使用相对路径:
同一主机下的[资源](/resource/)。
同一主机下的资源。
参考式链接是在链接文字的方括号后再接一个方括号,在第二个方括号里要填入一个辨识链接的标记,然后在文档任意处把这个链接的内容定义出来,例如:
这是一个参考式的[链接示例][id](可以选择性在链接和标识间加入空格。)
[id]: http://test.com/ "Optional Title Here"
以下这两种形式与上面这种形式相同:
[id]: http://test.com/ 'Optional Title Here'
[id]: http://test.com/ (Optional Title Here)
链接地址可以使用<>括起来:
[id]: <http://test.com/> "Optional Title Here"
这是一个参考式的[链接示例]id
[id]: http://test.com/ “Optional Title Here”
链接辨别标签可以有字母、数字、空白和标点符号,但不区分大小写, 以下两个链接是相同的:
[link][a]
[link][A]
参考式链接还有一种隐式链接功能,可以省略链接标记,这种情况下,链接标记等同于链接文字,使用隐式链接只要在链接文邹后加上[]
即可,比如:
[Link][]
[Link]: http://test.com/
使用参考式链接的好处是使得文档结构简单,使阅读文档时更加清晰。可以让文档更像是转换成HTML后的结构,可以以把一些标记相关的元数据转移到文档最后,不但可以增加链接,还可以让阅读文档时不被打断。
强调
Markdown可以使用*
和_
作为标记强调符号,被*
和_
包围的字词会被转换为斜体(一个符号)和粗体(两个符号),例如:
*em*
**strong**
_em_
__strong__
em
strong
em
strong
代码
如果在一行内标记一小段的代码,可以使用``
括起来,例如:
使用`<html>`标签时,可以把它变成代码段。
使用
<html>
标签时,可以把它变成代码段。
如果想标记`
为代码段,需要在``
括起来,并在`
前后加入空格;如果在``
中可以加文字需要使用`` ``
(`test`
),例如:
如果想标记` ` `为代码段,需要在` `` `括起来,并在` ` `前后加入空格;如果在` `` `中可以加文字需要使用` `` `` `(`` `test` ``)
图片
Markdown中使用类似标记链接的语法来标记图片,同样可以使用行内式和参考式。
行内式的图片语法是:


参考式的图片语法是:
![Alt test][id]
[id]: url/path/image "Optional title attribute"
其它语法
表格
在Markdown语法中可以使用-
、|
和:
来画出表格,-
代表横线,|
代表竖线,:-----:
代表横线上的内容居中,例如:
|Title1 |Title2 |Title3 |
|------------|:--------:|:-----:|
|Content1 |Content2 |Content3|
Title1 Title2 Title3 Content1 Content2 Content3
自动链接
Markdown中支持简单的自动链接形式来出来网址和电子邮箱,使用<>
括起来即可,Markdown会自动将它装换成链接形式,例如:
<http://test.com/>
<test@test.com>
转义
Markdown中可以利用\
来转义语法中有特殊意义的符号,例如:在文章中就是想加入*
,不想进行强调,可以在*
前加入\
:
\*只想在文章中加入`*`\*
*只想在文章中加入
*
*
Markdown中支持以下符号前加\
来转义:
\
反斜线`
反引号*
星号_
下划线{}
花括号[]
方括号()
圆括号+
加号-
减号.
英文句号!
叹号
Markdown书写软件
Markdown本身是一种标记性语法,上面提到过,即使不转换成HTML语言可读性也很强,所以任何文本工具都可以使用Markdown语法,有些文本工具可以安装一些插件达到语法高亮的效果,这里就不一一细说了。还有一些软件是可以一边使用Markdown语法书写,同时能看到转换为HTML后的效果,即所见即所得,如:MarkdownPad、马克飞象(Chrome浏览器插件)、Mou等,还有许多在线的书写工具。
参考资料
本文是根据wowubuntu文章,并根据自己的一些理解加以修改而编写的, 一切版权问题依照原作者声明。