# 1. 块引用
一个块引用标记 (opens new window) 由 0-3 个初始缩进空格组成,另外加上(a)字符>
与一个空格,或(b)单个字符>
后面没有空格。
块引用 (opens new window)由以下规则定义:
- 一般原则 如果许多行 Ls 构成块 Bs 的序列,那么将块引用标记 (opens new window)添加到 Ls 中每行的开头,会是一个包含 Bs 的块引用 (opens new window)。
- 延迟原则 如果许多行 Ls 构成一个含有内容的块引用 (opens new window) Bs ,那么从一行或多行删除的初始块引用标记的结果,其中块引用标记之后的下一个非空白字符就是段落连续文本,它是以 Bs 为内容的块引用。段落延续文本 (opens new window)被解析为段落的部分内容,但并不会出现在段落的开头。
- 持续性 文档中不能在同一行中出现两个块引用 (opens new window),除非二者中间有一行空行 (opens new window)。
其余形式皆不能称为块引用 (opens new window)。
以下是一个简单的例子:
示例 206
Markdown | HTML | 效果 |
---|---|---|
|
|
在>
之后的空格可以被省略:
示例 207
Markdown | HTML | 效果 |
---|---|---|
|
|
>
可以被缩进 1-3 个空格:
示例 208
Markdown | HTML | 效果 |
---|---|---|
|
|
四个空格可以形成代码块:
示例 209
Markdown | HTML | 效果 |
---|---|---|
|
|
延迟原则可以使我们省略段落延续文本 (opens new window)前面的>
:
示例 210
Markdown | HTML | 效果 |
---|---|---|
|
|
一个块引用可以同时包括「延迟」和「非延迟」的延续行:
示例 211
Markdown | HTML | 效果 |
---|---|---|
|
|
延迟原则仅适用于那些在延续段落前已经拥有块引用标记 (opens new window)的行。比方说,以下情况中>
不能被省略
> foo
> ---
同理:
示例 212
Markdown | HTML | 效果 |
---|---|---|
|
|
同样,如果在以下情况中省略>
> - foo
> - bar
那么引用块在第一行之后就会结束:
示例 213
Markdown | HTML | 效果 |
---|---|---|
|
|
同样的情况,缩进和代码块后面的行之前的>
不能被省略:
示例 214
Markdown | HTML | 效果 |
---|---|---|
|
|
示例 215
Markdown | HTML | 效果 |
---|---|---|
|
|
在接下来的例子中请注意,其中有一个延迟的后续行 (opens new window):
示例 216
Markdown | HTML | 效果 |
---|---|---|
|
|
为探究其原因,注意以下情况
> foo
> - bar
- bar
缩进的太多无法形成列表,并且其由于缩进无法中断段落也不能成为代码块,所以它是段落延续文本 (opens new window)。
一个引用块可以为空:
示例 217
Markdown | HTML | 效果 |
---|---|---|
|
|
示例 218
Markdown | HTML | 效果 |
---|---|---|
|
|
一个引用块的初始或者最后一行可以为空行:
示例 219
Markdown | HTML | 效果 |
---|---|---|
|
|
空行可以分离引用的块:
示例 220
Markdown | HTML | 效果 |
---|---|---|
|
|
(目前大多数的 Markdown 应用,包括 John Gruber 最初的Markdown.pl
,都会将此示例解释成带有两个段落的块引用,但是最好让作者来决定是否需要一个或者两个块引用)
持续性意味着如果把多个块引用放到一起,会得到一个大的块引用:
示例 221
Markdown | HTML | 效果 |
---|---|---|
|
|
要得到一个大有两个段落的块引用,需要:
示例 222
Markdown | HTML | 效果 |
---|---|---|
|
|
块引用可以中断段落:
示例 223
Markdown | HTML | 效果 |
---|---|---|
|
|
一般来讲,空行不需要出现在块引用前后:
示例 224
Markdown | HTML | 效果 |
---|---|---|
|
|
当然,由于延迟原则,块引用后面出现段落时需要进行空行:
示例 225
Markdown | HTML | 效果 |
---|---|---|
|
|
示例 226
Markdown | HTML | 效果 |
---|---|---|
|
|
示例 227
Markdown | HTML | 效果 |
---|---|---|
|
|
由于延迟原则,在嵌套块引用后面出现的后续行可以省略前面的>
:
示例 228
Markdown | HTML | 效果 |
---|---|---|
|
|
示例 229
Markdown | HTML | 效果 |
---|---|---|
|
|
当块引用中包含缩进的代码块时,块引用标记 (opens new window)包含了>
和一个空格,所以>
后需要 五个空格 :
示例 230
Markdown | HTML | 效果 |
---|---|---|
|
|