Markdown では、文章中で改行しても改行されずに半角スペースになる場合があります。
これを強制的に改行する方法を紹介します。
本記事では、ソース内文章中の 1 つ改行を Soft line break、明示的な改行を Hard line break と呼称します。(CommonMark と同じ)
また、半角スペースを ␣
、改行を ↵
として明示的に表現しています。
明示的に改行する
Markdown ソース内で明示的に改行する場合、以下の 2 通りが主流です。この明示的な改行を Hard line break と呼びます。
- 連続した 2 つの半角スペース+改行:
␣␣↵
- バックスラッシュ+改行:
\↵
ここで␣␣↵
改行します。
ここでも\↵
改行します。
これらの明示的な改行は <br>
として解釈されます。
しかし、このような明示的な改行が任意の Markdown 仕様に含まれているわけではありません。
仕様と Hard line break
Markdown は John Gruber によるオリジナル Markdown から派生して多くの仕様が存在します。
これらの仕様それぞれによって、Hard line break をどのように表現するか異なります。
そこで、主要な Markdown 仕様の Hard line break がどのように表現できるか表にしました。
仕様 | ␣␣↵ |
\↵ |
その他 |
---|---|---|---|
(Original) Markdown | ✓ | ||
CommonMark | ✓ | ✓ | |
Djot | ✓ | ||
kramdown | ✓ | \\↵ |
|
MultiMarkdown | ✓ | ✓ | |
Pandoc’s Markdown | ✓ | ✓1 | |
PHP Markdown Extra | ✓ | ||
Python-Markdown | ✓ |
HTML が利用可能なのであれば、<br>
でも強制改行できます。
Soft line break が強制改行に解釈される場合
Qiita のように Soft line break(ソース内の文書改行)が強制改行に解釈される場合、通常の改行だけでも改行されます。2
Markdown | ⇒ | HTML |
---|---|---|
| ⇒ |
|
ここに Hard line break による強制改行を行っても、2 重の強制改行にはなりません。(<br>
が連続しない)
Markdown | ⇒ | HTML |
---|---|---|
| ⇒ |
|
ただし、<br>
を明示的に利用する場合、2 重の強制改行になってしまいます。
Markdown | ⇒ | HTML |
---|---|---|
| ⇒ |
|
CommonMark を拡張した GFM が使われている GitHub.com では、改行が強制改行に解釈される領域(Issues や PRs、そのコメント等)と改行が無視され半角スペースになる領域(リポジトリのファイルや Gist 等)があります。
文章の途中で改行したいと強く願うならば、<br>
で強制改行するよりも \↵
を利用した方が良いでしょう。
余談
「Markdown では ␣␣↵
で強制改行しなくてはならないのは不便だ」と言う主張もありますが、多くの場合で \↵
でも改行できます。
\↵
を使いましょう。