lanbos'blog

markdown语法

markdown的语法简单,效果美观,而且通用性不差,网上已经有很多教程了,这里记录一些基本的语法,和一些复杂的方法以做备忘录。

概述

Markdown 的目标是实现「易读易写」。Markdown 语法的目标是:成为一种适用于网络的书写语言。
Markdown 不是想要取代 HTML,甚至也没有要和它相近,它的语法种类很少,只对应 HTML 标记的一小部分。Markdown 的构想不是要使得 HTML 文档更容易书写。在我看来, HTML 已经很容易写了。Markdown 的理念是,能让文档更容易读、写和随意改。HTML 是一种发布的格式,Markdown 是一种书写的格式。就这样,Markdown 的格式语法只涵盖纯文本可以涵盖的范围。

不在 Markdown 涵盖范围之内的标签,都可以直接在文档里面用 HTML 撰写。不需要额外标注这是 HTML 或是 Markdown;只要直接加标签就可以了。

要制约的只有一些 HTML 区块元素――比如 <div>、<table>、 <pre>、 <p> 等标签,必须在前后加上空行与其它内容区隔开,还要求它们的开始标签与结尾标签不能用制表符或空格来缩进。Markdown 的生成器有足够智能,不会在 HTML 区块标签外加上不必要的 <p> 标签。
请注意,在 HTML 区块标签间的 Markdown 格式语法将不会被处理。比如,你在 HTML 区块内使用 Markdown 样式的强调会没有效果。

HTML 的区段(行内)标签如 <span>、 <cite>、 <del> 可以在 Markdown 的段落、列表或是标题里随意使用。依照个人习惯,甚至可以不用 Markdown 格式,而直接采用 HTML 标签来格式化。举例说明:如果比较喜欢 HTML 的 <a> 或 <img> 标签,可以直接使用这些标签,而不用 Markdown 提供的链接或是图像标签语法。

和处在 HTML 区块标签间不同,Markdown 语法在 HTML 区段标签间是有效的。

在 HTML 文件中,有两个字符需要特殊处理: <和 & 。 <符号用于起始标签,& 符号则用于标记 HTML 实体,如果你只是想要显示这些字符的原型,你必须要使用实体的形式,像是 &lt; 和 &amp;。

& 字符尤其让网络文档编写者受折磨,如果你要打「AT&T」 ,你必须要写成「AT&amp;T」。而网址中的 & 字符也要转换。

常用标签

1.标题

标题是最为常用的格式,而在 Markdown 中,你只需要在文本前面加上 # 即可,同理、你还可以增加二级标题、三级标题、四级标题、五级标题和六级标题,总共六级,只需要增加 # 即可,标题字号相应降低。例如:

1
2
3
4
5
6
# 一级标题 
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题

注:# 和「一级标题」之间强烈建议保留一个字符的空格,这是最标准的 Markdown 写法。

2.列表

列表格式也很常用,在 Markdown 中,你只需要在文字前面加上 - 就可以了,例如:

1
2
3
- 文本1
- 文本2
- 文本3

如果你希望有序列表,
也可以在文字前面加上 1. 2. 3. 就可以了,例如:

1
2
3
1. 文本1
2. 文本2
3. 文本3

注:-、1.和文本之间要保留一个字符的空格。

3.代码引用

需要引用代码时,如果引用的语句只有一段,不分行,可以用 ` 将语句包起来。
如果引用的语句为多行,可以将```置于这段代码的首行和末行。

4.普通引用

在我们写作的时候经常需要引用他人的文字,这个时候引用这个格式就很有必要了,在 Markdown 中,你只需要在你希望引用的文字前面加上 > 就好了。注:> 和文本之间要保留一个字符的空格。

5.链接和图片

在 Markdown 中,插入链接不需要其他按钮,你只需要使用 [显示文本](链接地址)这样的语法即可,例如:

1
[简书](http://www.jianshu.com)

在 Markdown 中,插入图片不需要其他按钮,你只需要使用 ![](图片链接地址) 这样的语法即可,例如:

1
![](http://ww4.sinaimg.cn/bmiddle/aa397b7fjw1dzplsgpdw5j.jpg)

注:插入图片的语法和链接的语法很像,只是前面多了一个 !。

高级用法

1.表格

markdown的表格还是不太好用的,虽然也算比较直观。

1
2
3
4
5
| Tables        | Are           | Cool  |
| ------------- |:-------------:| -----:|
| col 3 is | right-aligned | $1600 |
| col 2 is | centered | $12 |
| zebra stripes | are neat | $1 |

Tables Are Cool
col 3 is right-aligned $1600
col 2 is centered $12
zebra stripes are neat $1

:表示居中方式。

2.自动链接

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

1
<http://example.com/>

显示为:http://example.com/

3.删除线

使用 ~~ 表示删除线。

1
~~这是一段错误的文本。~~

显示为:这是一段错误的文本。

4.todo列表

使用带有 [ ] 或 [x] (未完成或已完成)项的列表语法撰写一个待办事宜列表,并且支持子列表嵌套以及混用Markdown语法,例如:

1
2
3
4
- [ ] **七月旅行准备**
- [ ] 准备邮轮上需要携带的物品
- [ ] 浏览日本免税店的物品
- [x] 购买蓝宝石公主号七月一日的船票

显示为:

  • [ ] 七月旅行准备
    • [ ] 准备邮轮上需要携带的物品
    • [ ] 浏览日本免税店的物品
    • [x] 购买蓝宝石公主号七月一日的船票

5.水平分隔线

***表示水平分隔线
显示如:


6.注脚(支持性不友好)

使用 [^keyword] 表示注脚。

这是一个注脚[^footnote]的样例。

这是第二个注脚[^footnote2]的样例。

代码速查

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
1 标题与文字格式
标题

# 这是 H1 <一级标题>
## 这是 H2 <二级标题>
###### 这是 H6 <六级标题>

文字格式

**这是文字粗体格式**
*这是文字斜体格式*
~~在文字上添加删除线~~

2 列表
无序列表

* 项目1
* 项目2
* 项目3

有序列表

1. 项目1
2. 项目2
3. 项目3
* 项目1
* 项目2

3 其它
图片

![图片名称](http://gitcafe.com/image.png)

链接

[链接名称](http://gitcafe.com)

引用

> 第一行引用文字
> 第二行引用文字

水平线

***

代码

`<hello world>`

代码块高亮

\`\`\`ruby
def add(a, b)
return a + b
end
\`\`\`

表格

表头 | 表头
------------- | -------------
单元格内容 | 单元格内容
单元格内容l | 单元格内容

参考

Ruby Hacking Guide 中文版-Markdown语法小结

献给写作者的 Markdown 新手指南

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