Markdown语法说明

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让你可以自然地书写字符,需要转换的由它来处理好了。

例如,你想要在文档中插入一个版权符号 ©,可以这样写:

&copy;

Markdown会保留不动。而你若写:

AT&T

Markdown 会将它转换为:

AT&amp;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](/path/img.jpg "Optional title")

参考式:

![图片1][id]

[id]: url/path/img.jpg "Optional title attribute"

其他

自动链接

Markdown支持以比较简短的自动链接形式来处理网址和电子邮箱,只要用方括号包起来,例如:

<http://example.com/>

邮箱的自动链接类似。

反斜杠

可以利用反斜杠来插入一些在语法中有其它意义的符号。支持以下这些符号前面加上反斜杠来帮助出入普通的符号:

\  反斜杠
`  反引号
*  星号
_  底线
{} 花括号
[] 方括号
() 括弧
#  井字号
+  加号
-  减号
.  英文句点
!  惊叹号
您的支持将鼓励我继续创作!