以下是关于Markdown的常用语法,可以在Markdown编辑器选择一个Markdown编辑器边看边练习,推荐使用博客平台简书,因为其支持表格的绘制.涉及到的内容有:

  1. 段落和换行
  2. 标题
  3. 区块引用
  4. 列表
  5. 代码
  6. 分隔线
  7. 删除线
  8. 表格
  9. 链接
  10. 强调(斜体和粗体)
  11. 图片
  12. 自动链接
  13. 反斜杠

段落和换行

一个 Markdown 段落是由一个或多个连续的文本行组成,它的前后要有一个以上空行.

「由一个或多个连续的文本行组成」这句话其实暗示了 Markdown 允许段落内的强迫换行,Markdown换行有两种方式:
1. 插入换行符<br />
2. 在插入换行符处先按入两个以上的空格,然后按回车键

标题

在行首插入1到6个#,对应标题1到6阶,例如:

1
2
3
#这表示H1
###这表示H3
######这表示H6

Markdown中只有6阶标题

区块引用

Markdown在表示引用的行前门加入>,若需要引用整个段落,则只需要在该段落第一行最前面加上>

1
2
>有朋自远方来,不亦说乎
>成都,是一个您来了就不想离开的城市

引用段落:

1
>我永远相信只要永不放弃,我们还是有机会的.最后,我们还是坚信一点,这世界上只要有梦想,只要不断努力,只要不断学习,不管你长得如何,不管是这样,还是那样,男人的长相往往和他的的才华成反比。今天很残酷,明天更残酷,后天很美好,但绝对大部分是死在明天晚上,所以每个人不要放弃今天.

区块引用可以嵌套(引用内的引用),只要根据层次加上不同数量的>:

1
2
3
4
5
6
7
8
>这是第一层引用
>
>>这是第二层引用
>
>######这是6阶标题
>1. 列表第一行
>2. 列表第二行
>

从上面的例子可以看出,引用的区块内也可以使用其他的Markdown语法,包括标题,列表,代码区块等.

列表

Markdown支持有序列表和无序列表.在列表的开始前和结束后都需要有一行空白行.

无序列表可使用星号*、加号+或者减号-,并在其后加入一个空格作为列表标记, 例如:

1
2
3
* 猫
* 狗
* 猪

有序列表则使用数字,接着一个英文句点和空格,例如:

1
2
3
1. 北京
2. 成都
3. 江苏

无论是有序列表还是无序列表都支持嵌套,内嵌列表行首与上级列表相比需空一格,例如:

1
2
3
4
5
6
7
8
* 北京
+ 海淀区
+ 朝阳区
+ 宣武区
* 成都
+ 青羊区
+ 锦江区
+ 高新区

代码

代码块以三个反引号(`)包围,最终效果如图:

1
2
3
4
while(true) {
print("this loop is still execute.");
}
print("continue to do another task.");

标记一小段行内代码,可以使用反引号(`)将代码包起来, 例如:

1
在C语言中,你可以使用`printf()`函数来输出一些log信息.

代码区段的起始和结束端都可以放入一个空白,起始端后面一个,结束端前面一个,这样你就可以在区段的一开始就插入反引号:

1
2
在代码段中使用单一反引号: `` ` ``
在代码段中使用用反引号分隔的字符串: `` ddd`foo`eee ``

分隔线

Markdown,在一行中使用三个以上的星号或者下划线来建立一个分隔线,该行内不能有其他东西.例如:

1
2
***
___

删除线

在要画删除线的文本前后添加~~, 例如:

1
~~该任务已完成~~

表格

参考:
Markdown之表格的处理.
Markdown Reference一文中关于表格的部分.
Tables for Markdown and TextMate

Markdown支持两种形式的链接语法:行内式和参考式两种形式.不管是哪一种方式,链接文字都是用[方括号]标记.

建立行内式链接,只要在方括号后面紧接着圆括号,在圆括号内插入网址链接,如果想加上链接的title文字,只要在网址后用双引号把title文字包起来,例如:

1
2
3
这是我的微博[@CaryaLiu](http://weibo.com/caryaliu/"CaryaLiu's Blog"), 大家可以关注我哟

这是我的[LinkedIn](http://www.linkedin.com/in/caryaliu)这个没有链接的title文字

建立参考式的链接,是在链接文字的方括号后面再接上另一个方括号,在第二个方括号里面要填入用以辨识链接的标记,例如:

1
这是参考式链接,我的微博[@CaryaLiu][id], 欢迎关注我哟.

你可以在文件的任意处定义这个标记的链接内容:

1
[id]: http://weibo.com/caryaliu/ "CaryaLiu's Weibo"

链接内容定义的形式为:

  1. 方括号,前面可以选择性地加上至多三个空格来缩进,方括号内输入链接标记
  2. 接着是冒号
  3. 接着一个以上的空格或者制表符
  4. 接着链接的网址
  5. 选择性的title文字内容,用双引号包着

链接网址也可以用方括号包起来:

1
[id]: <http://weibo.com/caryaliu/> "CaryaLiu's Weibo"

可以把title文字内容放到下一行,可以增加一些缩进,当网址太长的时候,这样会比较好看:

1
2
[id]: <http://weibo.com/caryaliu/>
"CaryaLiu's Weibo"

链接标记可以有字母、数字,字母不区分大小写.

链接标记的另一种形式是隐式链接标记,使你可以忽略指定链接标记,这种情形下,链接标记会视为等同于链接文字.使用隐式链接标记只要在链接文字后面加上一个空的方括号,例如:

1
这是我的[博客][], 欢迎关注.

然后定义链接内容:

1
[博客]: http://readus.org

参考式链接的例子如下:

1
2
3
4
5
这是我的[Hexo博客][1],之前有过[网易博客][2], 和[csdn博客][3],最后想弄个比较自主的博客,想起了自己来搭建,尝试过wordpress,现在决定先用Hexo试试。

[1]: http://readus.org
[2]: http://blog.163.com/liumaohua890413@126/
[3]: http://blog.csdn.net/caryaliu

隐式链接标记的例子如下:

1
2
3
4
5
这是我的[Hexo博客][],之前有过[网易博客][], 和[csdn博客][],最后想弄个比较自主的博客,想起了自己来搭建,尝试过wordpress,现在决定先用Hexo试试。

[Hexo博客]: http://readus.org
[网易博客]: http://blog.163.com/liumaohua890413@126/
[csdn博客]: http://blog.csdn.net/caryaliu

使用行内式链接标记的例子如下:

1
这是我的[Hexo博客](http://readus.org),之前有过[网易博客](http://blog.163.com/liumaohua890413@126/), 和[csdn博客](http://blog.csdn.net/caryaliu),最后想弄个比较自主的博客,想起了自己来搭建,尝试过wordpress,现在决定先用Hexo试试。

强调

这里有两种方式,斜体和粗体.
斜体,使用单个星号*或者下划线_作为标记,将需要强调的字符包含;
粗体,使用两个*或者_作为标记,将需要强调的字符包含;
例如:

1
2
3
4
5
*这是斜体*  
_这也是斜体_

**这是粗体**
__这也是粗体__

如果要在文字前后直接插入普通的星号或者下划线,可以在其之前插入反斜线\,例如:

1
在使用正则表达式时,可以使用星号\*表示匹配0个或者多个任意字符

图片

Markdown使用和链接很相似的语法来标记图片,同样有行内式和参考式两种.
行内式的图片语法:

1
2
![Alt text](/path/to/img.png)
![Alt text](/path/to/img.png "Optional title")

详述如下:
* 一个感叹号! * 接着是一个方括号,里面放上图片的替代文字 * 接着一个圆括号,里面放上图片的网址,最后可选择性地加上用引号包住的title文字

参考式的图片语法:

1
![Alt text][id]

id是图片参考的名称,图片参考的定义方式和链接参考一样:

1
[id]: ur/to/image "Optional title attribute"

到目前为止,Markdown还没有办法指定图片的宽高,如需要指定图片的宽高,可使用普通的<img>标签.

Markdown支持以比较简短的自动链接形式来处理网址和电子邮件地址,只要用方括号包起来,Markdown就会自动把它转成链接,一般网址的链接文字就和链接地址一样,例如:

1
<http://readus.org/>

Markdown会转为:

1
<a href="http://readus.org">http://readus.org</a>

反斜杠

Markdown可以利用反斜杠来插入一些在语法中有其它意义的符号,例如:如果你想要用星号加在文字旁边的方式来做出强调效果(但不用 标签),你可以在星号的前面加上反斜杠,例如:

1
\*literal asterisks\*

Markdown支持以下这些符号前面加上反斜杠来帮助插入这些符号,从而将以下字符直接作为文本加入文中.

1
2
3
4
5
6
7
8
9
10
11
12
\ 反斜线
` 反引号
* 星号
_ 底线
{} 花括号
[] 方括号
() 括弧
# 井字号
+ 加号
- 减号
. 英文句点
! 感叹号

参考:
Markdown 语法说明 (简体中文版)

Markdown Reference