執筆・検証: MD Converter編集部
Markdownの箇条書きがずれる・連番が崩れるときの直し方
Markdownの箇条書きが入れ子にならない、番号が続かない、コードや段落がリストから外れる原因を、空行とインデントの具体例、確認手順で解説します。
箇条書きのずれはインデントと空行を確認する
Markdownの箇条書きが意図せず入れ子になる、子項目にならない、番号が途中で1へ戻るときは、行頭の空白とリスト前後の空行を確認します。見た目では同じ空白でも、タブとスペースが混在している場合があります。
基本形は次のとおりです。
- 親項目A
- 子項目A-1
- 子項目A-2
- 親項目B
子項目は親項目より深く字下げします。必要な幅はMarkdown処理系や親項目の記号によって異なるため、同じ文書ではスペースの使い方を統一し、実際に使うレンダラのプレビューで確認します。
原因1:タブとスペースが混ざっている
エディタの設定によって、Tabキーがタブ文字を入れる場合と複数のスペースへ変換する場合があります。コピーした文章では両方が混ざることもあります。
不自然な項目の行頭を一度削除し、スペースで入れ直します。エディタに空白文字の表示機能があれば有効にします。チームでは「インデントはスペース」と決め、自動整形設定も合わせると再発を防げます。
原因2:親項目とのインデントが足りない
子項目の記号が十分に字下げされていないと、新しい親項目として解釈されます。
1. ファイルを開く
- 内容を確認する
- 文字コードを確認する
2. 保存する
番号付きリストは1.の後にも空白があるため、子要素の開始位置を親本文にそろえるよう意識します。数字が2桁になる場合もあるため、実際のプレビューで階層を確認します。
原因3:段落がリストの外へ出ている
リスト項目の中へ複数の段落を入れる場合、空行を置いたうえで後続段落を字下げします。
- 最初の項目
この説明は最初の項目に属します。
- 次の項目
説明文のインデントがないと、リストがそこで終了し、通常の段落として表示されることがあります。逆に空行なしで長文を続けると、ソース上で項目の境界が分かりにくくなります。
原因4:コードブロックの位置がずれている
手順の中へコードを入れる場合、コードフェンス全体をその項目に属する位置へ置きます。
1. 次のコマンドを実行します。
```bash
npm run build
```
2. 結果を確認します。
処理系によっては、空行とフェンスのインデントが不十分だと番号付きリストが終了します。コードの後に番号が1へ戻る場合は、コードブロックの前後と字下げを確認してください。
原因5:番号を手動管理している
Markdownでは、すべての項目を1.で書いても表示時に連番へ変換する処理系があります。
1. 原稿を開く
1. 内容を確認する
1. PDFで保存する
この方法は項目を追加・並べ替えたときに番号を直す必要がなく、差分も小さくできます。ただし、ソース上でも番号を読みたい場合や、利用環境が自動連番に対応しない場合は実際の番号を書きます。チーム内でどちらかに統一します。
原因6:リスト記号が途中で変わっている
箇条書きには-、*、+を使えますが、途中で記号を変えると別のリストとして扱う実装があります。意味のない切り替えは避け、通常は-へ統一します。
番号付きリストと箇条書きを組み合わせる場合は、親子関係が伝わるインデントを付けます。階層が3段、4段と深くなると読み手が現在位置を見失うため、見出しへ分割することも検討します。
PDFで箇条書きが読みづらい場合
PDFでは行が長いと折り返し、2行目以降の開始位置が記号と重なる場合があります。これはMarkdownの構造ではなく、CSSのpadding、margin、リスト記号位置の問題です。まず正しいHTMLリストへ変換されているか確認し、その後に印刷用CSSを調整します。
ページ末尾で記号だけが残ったり、項目の途中でページが変わったりする場合は、文章を短い項目へ分けるか、重要なリストの前で改ページします。すべてのリストへ分割禁止を付けると大きな空白が生じるため注意してください。
確認チェックリスト
最小構成で階層を再現する
複雑なリストが崩れたら、親1項目と子1項目だけを別の場所へコピーします。そこへ段落、コード、チェック項目を一つずつ戻し、どの追加で階層が切れるかを確認します。インデント幅を闇雲に増やすより、親本文の開始位置へ子要素をそろえる方が安定します。
深すぎるリストは見出しへ分ける
3階層を超える箇条書きは、記法が正しくても読み手が現在位置を把握しにくくなります。上位項目をH3へ昇格し、その下を1〜2階層のリストにすると、目次、PDFの改ページ、Word変換でも構造が伝わりやすくなります。番号は手順の順序が重要な場合だけに使い、単なる分類には箇条書きを使います。
- タブとスペースを混在させていない
- 子項目が親より深く字下げされている
- 項目内の段落にもインデントがある
- コードブロックの前後に空行がある
- リスト記号を途中で変えていない
- 階層を深くしすぎていない
- HTMLとPDFの両方で折り返しを確認した
ソースの空白を統一し、文書構造を正しくした後に見た目を調整すると、環境を変えても崩れにくいリストになります。
よくある質問
リストの途中から番号を始められますか?
HTMLのstart属性などを使える環境はありますが、Markdownだけでは処理系ごとに対応が異なります。前のリストから続く理由が明確でなければ、見出しを挟んで新しいリストとして1から始める方が読みやすくなります。
チェックリストも同じインデントですか?
GFMの- [ ]と- [x]も箇条書きの一種なので、入れ子や段落には同じ考え方を使います。チェック記号と角括弧の間隔を変えると認識されないことがあるため、記法を統一してください。
Wordから貼り付けると崩れるのはなぜですか?
全角空白、特殊な箇条書き記号、自動番号が混ざるためです。一度プレーンテキストとして貼り付け、-または1.と半角スペースで組み直すと安定します。