このページの内容

4.4字下げによるコードブロック

字下げによるコードブロックは、空行で区切られた1個以上の字下げされたまとまりからなります。字下げされたまとまりとは、各行が4個以上のスペースで字下げされた、空行ではない行の並びです。コードブロックの内容は、末尾の行末も含む各行の文字どおりの内容から、字下げの4個のスペースを取り除いたものです。字下げによるコードブロックには情報文字列はありません。

字下げによるコードブロックは段落を中断できないため、段落と、その後に続く字下げコードブロックの間には、空行が必要です。ただし、コードブロックと、その後に続く段落の間に空行は必要ありません。

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

字下げをコードブロックとして解釈することと、内容がリスト項目に属すると解釈することの両方が可能な場合は、リスト項目としての解釈が優先されます。

  - foo

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

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

コードブロックの内容は文字どおりのテキストで、Markdownとして解析されません。

    <a/>
    *hi*

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

- one
</code></pre>

次の例には、空行で区切られた3つのまとまりがあります。

    chunk1

    chunk2
  
 
 
    chunk3
<pre><code>chunk1

chunk2



chunk3
</code></pre>

4個のスペースによる字下げを超えて先頭にあるスペースやタブは、内容に含まれます。ブロック内部の空行でも同様です。

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

字下げによるコードブロックは、段落を中断できません。このため、ぶら下げ字下げなどを使えます。

Foo
    bar

<p>Foo
bar</p>

ただし、空行ではない行の字下げが4個のスペースより少なければ、その時点でコードブロックは終わります。したがって、字下げコードの直後に段落を置けます。

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

また、字下げコードは、ほかの種類のブロックの直前や直後にも置けます。

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

最初の行の前には、4個を超えるスペースによる字下げを置けます。

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

字下げコードブロックの前後の空行は、ブロックには含まれません。


    
    foo
    

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

末尾のスペースやタブは、コードブロックの内容に含まれます。

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