Markdown 改行されない原因と解決方法

Markdown で改行したのに1行になる原因は仕様どおりの動き。CommonMark の段落ルール、行末スペース2つ・バックスラッシュ・`<br>` のハード改行記法と使い分けを整理します。

Markdown で文書を書いていて、「ここで改行したはずなのに、プレビューではつながって見える」という経験は少なくありません。これはバグではなく、仕様どおりの動きです。Markdown はもともと「メールやプレーンテキストでも読みやすい軽量記法」として設計されており、単なる改行(ハード改行)をそのまま HTML に反映しない前提になっています。理解のポイントは、「段落」と「行の折り返し」を分けて考えることです。

なぜ「改行したのに1行」になるのか

多くの環境で採用されている CommonMark では、ソース上で Enter を1回押しただけの改行は、同じ段落の中の空白として扱われ、HTML に出力すると通常はスペース1つにまとめられるか、あるいは無視されます。これは、本文を折り返し幅で書き分けても、意味のある段落の区切りは空行で示すという思想に沿っています。Word のように「見た目の行=レイアウト上の行」ではない点が、初心者ほど混乱しやすい部分です。

また、エディタによっては右端で自動折り返ししているだけで、実際のファイル上は1行のまま、ということもあります。プレビュー側では「1行としてレンダリングされる」と、改行が効いていないように見えます。

よくある誤解

「HTML にすると <p> が段落で囲まれるから、ソースの改行もそのまま反映されるのでは」という誤解もありますが、変換の第一段階で**論理構造(段落・リストなど)**が決まり、その結果として <p><br> が付きます。ソースの改行がそのまま DOM の改行に1対1で対応するわけではありません。CMS やスライドツールに貼り付けたときだけ挙動が変わる、という場合は、貼り付け先がプレーンテキストとして解釈している可能性も疑ってください。

段落を分けたいとき(いちばんよく使う)

空行を1行はさむと、別の段落として扱われます。見出しやリストのブロックのあいだも同様で、空行が「ブロックの境界」の役割を果たします。メールやチャットの感覚で詰めて書くと段落が分かれず、長い1ブロックになってしまうので、意味の区切りごとに意識的に空行を入れる習慣がおすすめです。

同じ段落のなかで行だけ変えたいとき

詩・歌詞・住所・短いステップの列挙など、段落は同じまま行だけ分けたい場合は、次のいずれかが使われます。

半角スペース2つはエディタによっては見えにくく、保存時に削除される設定もあるため、確実性が必要ならバックスラッシュ方式や <br> の可否を確認するとよいでしょう。

リストや表まわりの注意

GitHub Flavored Markdown(GFM)など、方言によってはリスト項目の間に空行を入れると段落として解釈されたり、入れないと1行にまとまったりと、細かい差があります。表のセル内で改行したい場合は、別記事で触れるように <br> や別行への分割が必要になることがあります。

ツールで確認する

ルールを頭に入れたうえで、実際の変換結果を見るのがいちばん早いです。Markdown を HTML に ではプレビューで HTML としての表示を確認できます。自チームで使うレンダラ(CommonMark 準拠か、GFM かなど)もそろえておくと、「自分の環境ではこうなる」が共有しやすくなります。PDF に出力する場合も、最終的には HTML 経由でレイアウトが決まるため、同じ原稿でもプレビューと印刷で差が出たらまず段落と改行のルールを疑うと原因が切り分けしやすいです。

まとめ

Markdown で改行が「効かない」のは、単一改行を段落区切りにしない設計のためです。段落分けは空行、段落内の改行は行末スペース2つ・バックスラッシュ・<br>など、目的に応じて使い分けましょう。仕様書や README をチームで書くときは、上記を短く執筆ガイドに1ページまとめておくと、レビューでの「なぜここで改行しないのか」というやり取りも減らせます。

よくある質問(FAQ)

Q. Word のように Enter 1回で改行するにはどうすればいいですか?

行末に半角スペース2つを入れてから Enter を押すと、同じ段落の中での改行(<br>)になります。またはバックスラッシュ \ を行末に書いても同じ効果があります。エディタが末尾スペースを自動削除する場合はバックスラッシュの方が確実です。

Q. 空行を入れると段落間が広くなりすぎます

これは CSS の <p> タグへの margin-bottom の問題です。Markdown の仕様ではなく、スタイルシートを調整することで段落間隔を制御できます。このサイトのレイアウト設定では行間の調整が可能です。

Q. GitHub で見ると改行が効いていたのに、ほかのツールでは効かない

GitHub Flavored Markdown(GFM)は一部のルールが CommonMark と異なります。使用するレンダラの仕様を確認し、チーム内で統一することをおすすめします。

Q. <br> を書いたのに表示されません

使用しているツールまたはサイトが、XSS 対策のため <br> などの HTML タグをサニタイズ(除去)している可能性があります。そのツールで HTML が許可されているかを確認してください。詳細は Markdown 改行 br 使い方と注意点 を参照してください。

Q. Markdown の改行ルールをチームに共有する良い方法はありますか?

README に「改行の書き方ルール」を1セクション設けて、「段落を分けるときは空行」「行だけ変えるときはバックスラッシュか <br>」と明記するのが効果的です。プレビューで確認できる共通環境(このサイトなど)を案内すると理解が早いです。

関連記事