Markdown:一种简单易学功能强大、任何文本编辑器都可以编写的标记语言。目前 github、Stackoverflow 等网站都支持这种格式。

标题

Markdown 支持两种标题的语法,类 Setext 和类 atx 形式。

类 Setext 形式是用底线的形式,利用 = (最高阶标题)和 - (第二阶标题),例如:

1
2
3
4
5
This is an H1
=============

This is an H2
-------------

任何数量的 = 和 - 都可以有效果,要写在文章的最开头才会有效果。

类 Atx 形式则是在行首插入 1 到 6 个 # ,对应到标题 1 到 6 阶,例如:

1
2
3
4
5
# 这是 H1

## 这是 H2

###### 这是 H6

区块引用

引用别人文字的时候,这个格式就显得非常必要。Markdown 标记区块引用是使用类似 email 中用 > 的引用方式。

1
2
3
4
5
6
> This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
> consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
> Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.
>
> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
> id sem consectetuer libero luctus adipiscing.

Markdown 也允许你偷懒只在整个段落的第一行最前面加上 > :

1
2
3
4
5
6
> This is a blockquote with two paragraphs. Lorem ipsum dolor sit amet,
consectetuer adipiscing elit. Aliquam hendrerit mi posuere lectus.
Vestibulum enim wisi, viverra nec, fringilla in, laoreet vitae, risus.

> Donec sit amet nisl. Aliquam semper ipsum sit amet velit. Suspendisse
id sem consectetuer libero luctus adipiscing.

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

1
2
3
4
5
 This is the first level of quoting.
>
> > This is nested blockquote.
>
> Back to the first level.

引用的区块内也可以使用其他的 Markdown 语法,包括标题、列表、代码区块等:

1
2
3
4
5
6
7
8
> ## 这是一个标题。
>
> 1. 这是第一行列表项。
> 2. 这是第二行列表项。
>
> 给出一些例子代码:
>
> return shell_exec("echo $input | $markdown_script");

注:>和文本之间要保留一个字符的空格。

列表

Markdown 支持有序列表和无序列表。

无序列表可以使用星号、加号或是减号作为列表标记:

1
2
3
4
5
6
7
8
9
10
11
*   Red
* Green
* Blue

+ Red
+ Green
+ Blue

- Red
- Green
- Blue

注:上面的三种格式效果都相同,符号后面保留一个字符的空格。

有序列表则使用数字接着一个英文句点:

1
2
3
1.  Bird
2. McHale
3. Parish

分割线

可以在一行中用三个以上的星号、减号、底线来建立一个分隔线,行内不能有其他东西。

1
2
3
4
***
************
---
------------

链接

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

1
2
This is [an example](http://example.com/ "Title") inline link.
[This link](http://example.net/) has no title attribute.

隐式链接标记功能让你可以省略指定链接标记,这种情形下,链接标记会视为等同于链接文字,要用隐式链接标记,只需要在链接文字后面加上一个空的方括号:

1
[Google][]

定义链接内容:

1
[Google]: http://google.com/

注:链接的定义可以放在文件中的任何一个地方,最好放到文件最后集中管理。

参考式链接的范例:

1
2
3
4
5
6
7
[Google] [1]
[Baidu] [2]
[LoveDev] [3]

[1]: http://google.com/ "Google Search"
[2]: http://baidu.com/ "Baidu Search"
[3]: http://lovedev.org/ "My Blog "

参考式的链接其实重点不在于它比较好写,而是它比较好读以及易于维护,文章内容不需要改变,只用改变标示对应的链接就可以了。

强调

Markdown 使用星号()和底线(_)作为标记强调字词的符号,被 或 _ 包围的字词会被转成用 标签包围,用两个 * 或 _ 包起来的话,则会被转成

1
2
3
4
5
6
7
*single asterisks*

_single underscores_

**double asterisks**

__double underscores__

会转成:

1
2
3
4
5
6
7
<em>single asterisks</em>

<em>single underscores</em>

<strong>double asterisks</strong>

<strong>double underscores</strong>

注:唯一的限制是,用什么符号开启标签,就要用什么符号结束。

代码

如果要标记一小段行内代码,你可以用反引号把它包起来(`)。

1
Use the `printf()` function.

如果要在代码区段内插入反引号,你可以用多个反引号来开启和结束代码区段:

1
``There is a literal backtick (`) here.``

图片

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

行内式的图片语法:

1
2
3
![Alt text](/path/to/img.jpg)

![Alt text](/path/to/img.jpg "Optional title")

详细叙述如下:

  • 一个惊叹号 !
  • 接着一个方括号,里面放上图片的替代文字
  • 接着一个普通括号,里面放上图片的网址,最后还可以用引号包住并加上 选择性的 ‘title’ 文字。

参考式的图片语法:

1
![Alt text][id]

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

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

反斜杠

Markdown 可以利用反斜杠来插入一些在语法中有其它意义的符号。

1
\*literal asterisks\*

Markdown 支持以下符号前面加上反斜杠来帮助插入普通的符号:

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

自动链接

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

1
<http://example.com/>

Markdown 会转为:

1
<a href="http://example.com/">http://example.com/</a>

邮址的自动链接也很类似,只是 Markdown 会先做一个编码转换的过程,把文字字符转成 16 进位码的 HTML 实体,这样的格式可以糊弄一些不好的邮址收集机器人,例如:

1
<616651408@qq.com>

Markdown 会转成:

1
2
3
4
<a href="mailto:addre
ss@example.co
m">address@exa
mple.com</a>