# 缩进代码块

缩进代码块 (opens new window)由一个或多个由空行分隔的缩进块(chunks) (opens new window) 组成。缩进块是一些非空行的序列,每行缩进四个或更多空格。代码块的内容是行的文字内容,包括尾端的行尾 (opens new window),减去四个缩进空格。缩进的代码块没有信息字符串 (opens new window)。 缩进的代码块不能中断段落,因此段落和后面的缩进代码块之间必须有一个空行。(但是,代码块和后续段落之间不需要空白行。)

示例 77

Markdown HTML 效果
    a simple
      indented code block

<pre><code>a simple
  indented code block
</code></pre>

如果存在这样一种情况:将缩进的解释作为代码块,以及指示符属于列表项 (opens new window)之间存在任何歧义,则列表项解释优先:

示例 78

Markdown HTML 效果
  - foo

    bar

<ul>
<li>
<p>foo</p>
<p>bar</p>
</li>
</ul>

示例 79

Markdown HTML 效果
1.  foo

    - bar

<ol>
<li>
<p>foo</p>
<ul>
<li>bar</li>
</ul>
</li>
</ol>

代码块的内容是文字文本,不会被解析为 Markdown:

示例 80

Markdown HTML 效果
    <a/>
    *hi*

    - one

<pre><code>&lt;a/&gt;
*hi*

- one
</code></pre>

这里我们有三个用空行分隔的块:

示例 81

Markdown HTML 效果
    chunk1

    chunk2
  
 
 
    chunk3

<pre><code>chunk1

chunk2



chunk3
</code></pre>

除了四个以外的任意初始空格都将包含在内容中,即使是在内部空行中:

示例 82

Markdown HTML 效果
    chunk1
      
      chunk2

<pre><code>chunk1
  
  chunk2
</code></pre>

缩进的代码块不能中断段落。(这允许悬挂(hanging)缩进等。)

示例 83

Markdown HTML 效果
Foo
    bar

<p>Foo
bar</p>

然而,任何少于四个前导空格的非空行都会立即结束代码块。因此缩进代码后可能会立即出现一个段落:

示例 84

Markdown HTML 效果
    foo
bar

<pre><code>foo
</code></pre>
<p>bar</p>

缩进代码可以在其他类型的块之前和之后立即相遇(occur immediately):

示例 85

Markdown HTML 效果
# Heading
    foo
Heading
------
    foo
----

<h1>Heading</h1>
<pre><code>foo
</code></pre>
<h2>Heading</h2>
<pre><code>foo
</code></pre>
<hr />

第一行可以缩进四个以上的空格:

示例 86

Markdown HTML 效果
        foo
    bar

<pre><code>    foo
bar
</code></pre>

缩进代码块之前或之后的空行不包含在其中:

示例 87

Markdown HTML 效果

    
    foo
    

<pre><code>foo
</code></pre>

尾随空格包含在代码块的内容中:

示例 88

Markdown HTML 效果
    foo  

<pre><code>foo  
</code></pre>