Markdown(マークダウン)で技術文書、README、議事録、ブログ記事、業務マニュアルを作成する際、情報を整理して読みやすく伝えるために最も頻繁に使われるのが「Markdown 箇条書き(順不同リスト)」と「Markdown 番号付きリスト(順序付きリスト)」、そしてそれらを「Markdown インデントで階層化(ネスト)」するリスト記法です。
「マークダウン 箇条書きの基本記号(-, *, +)の使い分けや統一ルールを知りたい」「半角スペースのインデントでリストを綺麗に階層化(ネスト)する方法は?」「番号付きリストの自動連番の仕組みや途中番号から始める書き方は?」「箇条書きの中に複数行の段落やコードブロック(“`)、画像を挟む応用技を知りたい」「箇条書きから通常の文章に戻す解除方法やリストが崩れる原因は?」といった疑問や悩みを抱えている方は非常に多いのではないでしょうか。
Markdownのリスト記法は、記号の直後に半角スペースを空ける基本ルールと、正しいインデント幅(スペース2個または4個)さえマスターすれば、誰でも直感的かつ瞬時に美しく構造化されたドキュメントを作成できるようになります。
この記事では、コピペですぐに使える「箇条書き・リスト逆引きチートシート」をはじめ、基本の箇条書き(順不同リスト)・番号付きリストの書き方、インデントによる階層化(ネスト)のルール、箇条書き内に段落・コード・画像を内包する実践テクニック、解除・終了方法、主要エディタ別の操作ショートカット、表示崩れのトラブルシューティングまで、網羅的かつ分かりやすく徹底解説します!
📌 本記事のポイント・要点まとめ
- 箇条書き(順不同リスト):
- 項目名(ハイフン + 半角スペース1個)が最も標準的でおすすめ - 番号付きリスト(順序付きリスト):
1. 項目名(数字 + ピリオド + 半角スペース1個)。ソースコードをすべて1.で記述してもブラウザ側で自動的に 1, 2, 3… と自動連番表示される - インデント・階層化(ネスト): 行頭に半角スペース2個または4個(またはTab)を挿入して子リストを作成
- 段落やコードの挿入: リスト項目内に複数行の文章やコードブロックを挟む時は、親項目のインデントに合わせて半角スペースを揃える
- タスクリスト(ToDo):
- [ ] 未完了、- [x] 完了でチェックボックス付きリストも簡単に作成可能 - 箇条書きの解除: 空行を1〜2行挟む(Enterキーを2回押す)ことで通常の文章に戻る
【早見表】Markdown箇条書き・リスト 逆引きチートシート
まずは「今すぐ書き方を確認してコピーしたい」という方向けに、Markdownで使える箇条書き・リスト記法の書き方とブラウザ表示結果を一覧表にまとめました。コピーしてそのままエディタに貼り付けてご活用ください。
| リストの種類 | Markdown記述(コピペ用) | ブラウザでの表示結果 | HTML要素 |
|---|---|---|---|
| 箇条書き (順不同リスト) |
- リンゴ |
・リンゴ ・バナナ ・オレンジ |
<ul> <li> |
| 番号付きリスト (順序付きリスト) |
1. 第一段階 |
1. 第一段階 2. 第二段階 3. 第三段階 |
<ol> <li> |
| 自動連番リスト (全て1で記述) |
1. 企画の立案 |
1. 企画の立案 2. 画面の設計 3. 実装とテスト |
<ol> <li> |
| 途中番号スタート | 5. 第5章の内容 |
5. 第5章の内容 6. 第6章の内容 |
<ol start="5"> |
| リストの階層化 (ネスト / インデント) |
- 親項目1 |
・親項目1 ・子項目A ・子項目B ・親項目2 |
入れ子構造 |
| 複合リスト (箇条書き+番号) |
- 準備するもの |
・準備するもの 1. パソコン 2. エディタ |
<ul>内に<ol> |
| タスクリスト (ToDoリスト) |
- [ ] 未完了タスク |
☐ 未完了タスク ☑ 完了済みタスク |
チェックボックス |
| 段落を含むリスト | - 項目1
|
項目内に複数段落を内包 | <li><p> |
※Markdown記法全般の早見表や総合チートシートを確認したい方は、サイト内の「【コピペで使える】Markdown記法一覧・チートシート」や「Markdown文法ガイド初心者向け解説」もあわせてご活用ください。
基本の箇条書き(順不同リスト)の書き方:markdown 箇条書き / マークダウン 箇条書き
markdown 箇条書き(マークダウン 箇条書き / 順不同リスト)は、順序に関係のない項目を並べる際に使用します。HTMLに変換されると <ul>(Unordered List)および <li>(List Item)タグとして出力されます。
1. 箇条書きで使える3つの記号(-, *, +)
Markdownでは、行頭に半角ハイフン(-)、半角アスタリスク(*)、または半角プラス(+)を置き、その直後に半角スペース1個を空けてテキストを入力します。
# ハイフン(-)を使う書き方(最も一般的・推奨)
- フロントエンド開発(HTML / CSS / JavaScript)
- バックエンド開発(PHP / Python / Go)
- インフラ構築(AWS / Docker)
# アスタリスク(*)を使う書き方
* 要件定義
* 基本設計
* 詳細設計
# プラス(+)を使う書き方
+ 月曜日
+ 水曜日
+ 金曜日
▼ ブラウザでの表示結果(どの記号を使っても同一の箇条書きになります)
- フロントエンド開発(HTML / CSS / JavaScript)
- バックエンド開発(PHP / Python / Go)
- インフラ構築(AWS / Docker)
- 要件定義
- 基本設計
- 詳細設計
- 月曜日
- 水曜日
- 金曜日
2. どの記号を使うべき?ハイフン(-)が圧倒的に推奨される理由
Markdownの仕様上は -, *, + のどれを使っても同じHTML(<ul>)が生成されますが、チーム開発や記事執筆の現場では「半角ハイフン(-)」に統一することが強く推奨されています。
💡 ハイフン(-)を選ぶメリット:
- 太字や斜体との混同を防ぐ: アスタリスク(
*)は太字(**太字**)や斜体(*斜体*)でも使用するため、ソースコードの視認性が落ちやすい。ハイフンなら一目で箇条書きと判別可能。 - GoogleやGitHubのスタイルガイドに準拠: 多くのオープンソースプロジェクトやテック企業のコーディング規約(Markdown Style Guide)でハイフン(
-)の使用が指定されている。 - キーボード入力のしやすさ: 日本語配列・英語配列ともに Shift キーを押さずにワンキーで入力できる。
⚠️ 絶対厳守のルール:記号の後に半角スペースを必ず入れる
-リンゴ のように記号と文字の間に半角スペースがない場合、Markdownパーサーは箇条書きとして認識せず、単なる「マイナス記号付きの文字列」として出力してしまいます。必ず - リンゴ のように半角スペースを1個空けることを徹底しましょう。
番号付きリスト(順序付きリスト)の書き方と自動連番の仕組み:markdown 番号付きリスト
markdown 番号付きリスト(順序付きリスト / 順序リスト)は、手順やランキング、ステップなど、順番に意味がある項目を並べる際に使用します。HTMLでは <ol>(Ordered List)および <li> タグに変換されます。
1. 番号付きリストの基本構文
行頭に半角数字 + 半角ピリオド(.) + 半角スペース1個 を配置して記述します。
# 通常の連番での記述
1. アカウントの新規登録を行う
2. 登録確認メール内のリンクをクリックする
3. プロフィール情報を設定して完了
▼ ブラウザでの表示結果
- アカウントの新規登録を行う
- 登録確認メール内のリンクをクリックする
- プロフィール情報を設定して完了
2. 番号自動補正(自動連番)の仕組みとメリット
Markdownの優れた特徴の一つが「番号の自動補正(オートナンバリング)」です。ソースコード上で連番を意識せず、すべて「1. 」で記述しても、ブラウザやHTMLレンダラー側が自動的に「1.」「2.」「3.」と連番に補正して出力してくれます。
# ソースコード上はすべて「1.」で書く
1. リポジトリをクローンする
1. 依存パッケージをインストールする(npm install)
1. 環境設定ファイル(.env)を作成する
1. ローカルサーバーを起動する(npm run dev)
▼ ブラウザでの表示結果(自動的に連番になります)
- リポジトリをクローンする
- 依存パッケージをインストールする(npm install)
- 環境設定ファイル(.env)を作成する
- ローカルサーバーを起動する(npm run dev)
💡 すべて「1.」で書く大きなメリット:
長文のドキュメントで途中に新しいステップを挿入したり、項目の順番を入れ替えたりする際、1. 2. 3. 4. 5... と手動で番号を振っていると、以降の全ての番号を修正しなければなりません。すべて 1. で統一しておけば、行をコピペや移動するだけで番号の振り直しが一切不要になり、執筆・メンテナンス効率が劇的に向上します。
3. 途中番号から開始する方法(開始番号の指定)
CommonMarkおよび現代の主要Markdownパーサーでは、先頭の数字を任意の数字にすることで、その番号から始まるリスト(<ol start="5">)を生成できます。
# 5番からスタートしたい場合
5. 第5章:データベース設計の基本
6. 第6章:API設計とエンドポイントの実装
7. 第7章:ユニットテストの自動化
▼ ブラウザでの表示結果
- 第5章:データベース設計の基本
- 第6章:API設計とエンドポイントの実装
- 第7章:ユニットテストの自動化
リストのネスト(階層化・インデント)の正しいやり方:markdown インデント / markdown リスト
markdown インデント(markdown リスト階層化 / ネスト)を行うことで、リストの中に子リスト(入れ子構造)を作成し、親子の従属関係やカテゴリ分けを明確に表現できます。
1. 階層化(ネスト)の基本ルールとスペース数
子階層(ネスト)を作成するには、子にしたい行の先頭に「半角スペース2個または4個(またはTabキー1回)」を挿入してからリスト記号を記述します。
# 半角スペース2個でインデント(現代のWeb・エディタで主流)
- 日本の主要都市
- 関東地方
- 東京都
- 神奈川県
- 近畿地方
- 大阪府
- 京都府
- アメリカの主要都市
- ニューヨーク
- ロサンゼルス
▼ ブラウザでの表示結果(階層ごとに自動でインデントされ、記号の形状も変わります)
- 日本の主要都市
- 関東地方
- 東京都
- 神奈川県
- 近畿地方
- 大阪府
- 京都府
- 関東地方
- アメリカの主要都市
- ニューヨーク
- ロサンゼルス
2. スペース数は「2個」と「4個」のどちらが正解?
「Markdownのインデントはスペース2個なのか4個なのか?」という疑問は非常によく議論されます。結論から言うと、CommonMarkおよびGitHub Flavored Markdown(GFM)では「半角スペース2個」または「半角スペース4個」のどちらでも動作します。
| インデント方式 | 特徴・メリット | 主な採用プラットフォーム |
|---|---|---|
| 半角スペース2個 (Tab = 2 spaces) |
・横幅を取らず画面がコンパクトに収まる ・現在最も多くのモダンエディタで標準採用 |
GitHub、Qiita、Zenn、VS Code(推奨設定)、Obsidian |
| 半角スペース4個 (Tab = 4 spaces) |
・オリジナルのMarkdown仕様(John Gruber版)に準拠 ・箇条書き内にコードや段落を挟む際にも崩れにくい |
Pythonドキュメント、旧来のMarkdownパーサー |
💡 推奨ルール:
日常的な執筆やWeb上のMarkdown(GitHub / Qiita / Zenn / WordPress等)では、「半角スペース2個(または4個)」で文書全体を一貫して統一すれば問題ありません。エディタのインデント設定(Tab幅)をあらかじめ揃えておくのがおすすめです。
3. 箇条書きと番号付きリストの組み合わせ(混在ネスト)
箇条書きの子要素に番号付きリストを入れたり、番号付きリストの子要素に箇条書きを入れる「複合ネスト」も自由自在に作成できます。
# 箇条書きの中に番号付きリストを入れる
- フロントエンド学習ロードマップ
1. HTML / CSSの基礎を固める
2. JavaScript(ES6+)を習得する
3. ReactまたはVue.jsのフレームワークを学ぶ
- バックエンド学習ロードマップ
1. LinuxコマンドとSQLの基本
2. サーバーサイド言語(Python / PHP等)の習得
3. REST APIの設計と認証機能の実装
# 番号付きリストの中に箇条書きを入れる
1. 事前準備
- パソコン環境のセットアップ
- GitHubアカウントの作成
2. 開発作業
- ブランチを作成してコードを書く
- プルリクエスト(PR)を作成する
▼ ブラウザでの表示結果
- フロントエンド学習ロードマップ
- HTML / CSSの基礎を固める
- JavaScript(ES6+)を習得する
- ReactまたはVue.jsのフレームワークを学ぶ
- バックエンド学習ロードマップ
- LinuxコマンドとSQLの基本
- サーバーサイド言語(Python / PHP等)の習得
- REST APIの設計と認証機能の実装
- 事前準備
- パソコン環境のセットアップ
- GitHubアカウントの作成
- 開発作業
- ブランチを作成してコードを書く
- プルリクエスト(PR)を作成する
【実践・応用技】箇条書きの中に段落・コードブロック・画像を挟む方法
単行の箇条書きだけでなく、「1つのリスト項目の中に複数段落の説明文を入れたい」「箇条書きの途中にソースコードや画像を埋め込みたい」というケースは技術文書で頻出します。インデントのルールを正しく守ることで、リスト構造を壊さずにリッチなコンテンツを内包できます。
1. 箇条書きの中に「複数行の段落」を挟む
リスト項目内で改行して新しい段落を続けたい場合は、空行を1行挟んだ上で、次の段落の行頭を半角スペース(2〜4個)でインデントします。
- 第1のステップ:要件のヒアリング
クライアントの要望を丁寧にヒアリングし、課題と目標を明確化します。
このフェーズでの合意形成がプロジェクト全体の成功を左右します。
- 第2のステップ:画面プロトタイプの作成
Figmaなどのデザインツールを用いてUIの試作を作成します。
▼ ブラウザでの表示結果
- 第1のステップ:要件のヒアリング
クライアントの要望を丁寧にヒアリングし、課題と目標を明確化します。このフェーズでの合意形成がプロジェクト全体の成功を左右します。
- 第2のステップ:画面プロトタイプの作成
Figmaなどのデザインツールを用いてUIの試作を作成します。
2. 箇条書きの中に「コードブロック(“`)」を挿入する
箇条書きの項目内にシンタックスハイライト付きのコードブロックを挿入する場合は、コードブロック全体(バッククォート3つ含む)を行頭から半角スペース4個(または親リストに合わせたインデント)で字下げします。
- パッケージのインストール手順
以下のコマンドをターミナルで実行してライブラリをインストールします。
```bash
npm install axios dotenv
```
- サーバーの起動
設定が完了したら、開発サーバーを立ち上げます。
```bash
npm run start
```
※コードブロックの詳しい言語指定一覧やシンタックスハイライトの仕様は「Markdownコードブロックの書き方完全ガイド」をご覧ください。
3. 箇条書きの中に「引用(>)」や「画像」を入れる
引用文や画像、リンクも同様にインデントを揃えて記述することで、リストの項目内に美しく内包されます。
- 公式ドキュメントの注意事項
> **警告:** 本APIはバージョン3.0以降で非推奨となります。
> 移行ガイドを参照して新エンドポイントへ切り替えてください。
- 参考画像プレビュー

※引用記法の詳しい書き方については「Markdownの引用記法完全ガイド」で解説しています。
4. 【便利機能】チェックボックス付きタスクリスト(ToDoリスト)
GitHub Flavored Markdown(GFM)をはじめとする主要環境では、ハイフン + 半角スペース + [ ] または [x] と記述することで、インタラクティブなチェックボックスリスト(タスクリスト)を作成できます。
- [x] 記事の構成案・見出し作成(完了)
- [x] 本文執筆とコード例の動作検証(完了)
- [ ] アイキャッチ画像の作成
- [ ] 最終プレビュー確認と記事公開
▼ ブラウザでの表示結果(GitHubやNotion、対応エディタ上ではクリックでチェックの切替が可能)
-
記事の構成案・見出し作成(完了) -
本文執筆とコード例の動作検証(完了) - アイキャッチ画像の作成
- 最終プレビュー確認と記事公開
⚠️ タスクリスト記述の注意点:
・未完了のチェックボックスは [ ] のように括弧の中に半角スペース1個を必ず入れます([] はNG)。
・完了済みのチェックボックスは半角小文字の [x] または大文字の [X] を入れます。
箇条書きの解除・終了方法と連続リストの分割テクニック
「箇条書きを書いていた後、通常の文章に戻したい」「2つの別々のリストを連続して並べたいのに1つのリストに合体してしまう」という問題の解決法を解説します。
1. 箇条書きを終了して通常の文章に戻す方法
箇条書きを解除するには、「空行を挟む(Enterキーを2回押す)」だけでOKです。エディタ上では、記号が出現した行で何も文字を入力せずに再度 Enter を押すことでリストモードが自動解除されます。
- 箇条書きの最後の項目
(←ここに空行を1行挟む)
ここからは通常の段落文章になります。インデントなしで通常通り執筆できます。
2. 連続する2つの独立したリストを別々に分ける方法
Markdownの仕様では、箇条書きの間に空行を1行挟んでも、同一のリスト(<ul>)として結合されてしまう場合があります。「リストA」と「リストB」を明確に別のブロックとして分割したい場合は、以下の3つのテクニックを使います。
📋 連続リストを分割する3つの方法:
- 方法1:間に見出し(
###)や段落テキストを挟む(最も自然でおすすめ)
各リストの前に説明文や見出しを配置すれば自然に別々のリストに分かれます。 - 方法2:HTMLコメント(
<!-- -->)を挟む(裏技)
見た目上のテキストを出さずにリストだけを分割したい場合、空行の間に<!-- -->を配置するとパーサーが強制的にリストを分割します。 - 方法3:水平線・区切り線(
---)を挟む
視覚的に明確な境界線を引きたい場合に有効です。
# HTMLコメントを使ってリストを分割する例
1. 第一部のステップ1
1. 第一部のステップ2
1. 第二部のステップ1(ここから再び 1 から始まる)
1. 第二部のステップ2
箇条書き・リストが崩れる・反映されない原因と対処法
「箇条書きを入力したのに丸ポチ(・)にならずハイフンがそのまま表示される」「ネスト(インデント)が効かない」という場合、以下の5つの原因をチェックすれば確実に解決できます。
原因1:記号の後に「半角スペース」がない(最頻出)
Markdownパーサーは - や 1. の直後に半角スペースがあって初めてリスト構文として認識します。
- ❌ 誤り(反映されない):
-リンゴ、1.企画書 - ⭕ 正しい(反映される):
- リンゴ、1. 企画書
原因2:インデントに「全角スペース」が混ざっている
日本語入力モードのままインデントを行うと、全角スペース( )が挿入されてしまうことがあります。Markdownパーサーは全角スペースをインデントとして解釈しないため、階層化されません。必ず半角スペース(またはTabキー)を入力してください。
原因3:ハイフンや数字が「全角」になっている
全角ハイフン(ー や -)、全角アスタリスク(*)、全角数字(1.)はリスト記号として認識されません。必ず半角英数モードで入力しましょう。
原因4:リスト直前の文章との間に「空行」がない
一部の厳格なMarkdownパーサー(CommonMark準拠環境など)では、通常の段落テキストの直後に空行を空けずに箇条書きを開始すると、段落の一部(同一行)として扱われリスト化されない場合があります。
# ❌ 直前に空行がない(パースエラーの原因)
以下の手順に従って操作してください。
- 手順1
- 手順2
# ⭕ 直前に空行を1行空ける(推奨)
以下の手順に従って操作してください。
- 手順1
- 手順2
原因5:記号をリスト化せず「そのまま文字として表示したい」場合(エスケープ)
「行頭に - や 1. を置きたいけれど、箇条書きには変換せずそのまま文字として見せたい」という場合は、記号の直前に半角バックスラッシュ(\ ※日本語キーボードでは ¥)を置いてエスケープします。
# エスケープの記述例
\- この行は箇条書きになりません
1\. この行は番号付きリストになりません
※特殊文字のエスケープ全般については「Markdown特殊文字が表示されない原因とエスケープ対策」で詳しく解説しています。
主要エディタ・ツールでの操作ショートカット一覧
VS Code、Notion、Obsidian、Qiita、Slackなどのツールでは、キーボードショートカットを活用することで箇条書きやインデント操作を瞬時に行えます。
| やりたい操作 | Windows / Linux | Mac |
|---|---|---|
| リストの階層化(インデント増) | Tab | Tab |
| リストの階層戻し(インデント減) | Shift + Tab | Shift + Tab |
| 次の項目を自動作成(改行) | Enter | Enter(Return) |
| リストモードの解除・終了 | 項目が空の状態で Enter | 項目が空の状態で Enter |
| 項目の上下入れ替え(行移動) | Alt + ↑ / ↓ (VS Code) | Option + ↑ / ↓ (VS Code) |
| 複数行の一括インデント | 範囲選択して Tab | 範囲選択して Tab |
よくある質問(FAQ)
Q1. ハイフン(-)とアスタリスク(*)はどちらを使うべきですか?
A. ハイフン(-)を使うのが圧倒的におすすめです。アスタリスク(*)は太字(**太字**)や斜体(*斜体*)の装飾記号としても使われるため、コードが視覚的に煩雑になりがちです。GitHubやGoogleのMarkdownスタイルガイドでもハイフンへの統一が推奨されています。
Q2. インデントのスペース数は2個と4個、どちらが現代の標準ですか?
A. CommonMarkやGitHub(GFM)などの主要プラットフォームでは「半角スペース2個」が主流です。ただし、箇条書きの中にコードブロックや段落を挟むことが多い場合は「スペース4個」の方が構造が安定しやすくなります。1つのドキュメント内で一貫性を保つことが最も重要です。
Q3. 番号付きリストで「1.1」「1.2」のような階層番号(多重連番)を自動で付けることはできますか?
A. 標準のMarkdown記法には「1.1」「1.2.1」のような階層番号を自動生成する機能はありません。多重連番にしたい場合は、1.1 手順名 のようにテキストとして直接記述するか、CSSのカウンタ機能(counter-increment)を適用する必要があります。
Q4. 箇条書きの行間(余白)が広がりすぎてしまいます。詰める方法はありますか?
A. Markdownには「タイトリスト(行間が狭い)」と「ルーズリスト(行間が広い)」の2つの解釈があります。リスト項目の間に空行を挟むと、各項目が <p> タグで囲まれて行間が広がります(ルーズリスト)。行間を詰めたい場合は、リスト項目の間に空行を入れずに連続して記述してください。
Q5. 箇条書きの丸ポチ(・)を消したり、矢印や四角に変更できますか?
A. Markdown単体ではビュレット記号の形状変更はできません。形状を変更したい場合は、HTMLタグを併用して <ul style="list-style-type: square;">(四角)や <ul style="list-style-type: none;">(非表示)のようにCSSの list-style-type を指定します。
まとめ|Markdown箇条書き・リストをマスターして読みやすい文書を作ろう
Markdownの箇条書き(順不同リスト)と番号付きリスト(順序付きリスト)、そしてインデントによる階層化(ネスト)は、あらゆる文書の可読性を高める最も基本的かつ強力な表現手法です。
📝 箇条書き・リスト記述の重要ポイントおさらい:
- 箇条書き:
-(ハイフン + 半角スペース1個)で記述する - 番号付きリスト:
1.(数字 + ピリオド + 半角スペース1個)。すべて1.で書いても自動連番になる - インデント階層化: 行頭に半角スペース2個または4個を入れて子リストを作成する
- 段落やコードの挿入: 親リストのインデントに合わせて半角スペースを揃えて記述する
- タスクリスト:
- [ ](未完了)と- [x](完了)でチェックリストを活用する - 解除方法: 空行を1〜2行挟む(Enterを2回押す)ことで通常段落に戻る
箇条書きの基本構文とインデントルールを身につけて、見やすく伝わりやすいドキュメント作成にぜひ役立ててください!