「Markdownを書いてみたいけど、どこから始めればいいかわからない……」
「見出しやリストはできるけど、表や画像の扱い方が不安」
「コードブロックの書き方やシンタックスハイライトってどうするの?」
「環境によって表示が変わるって聞いたけど、公開するときはどう対処すればいいの?」
「議事録やREADMEをすぐ使えるテンプレで作りたい!」
こんな悩みや疑問を抱えていませんか?
本記事は、初めてMarkdownに触れる人でも迷わないように、基礎〜実践、運用のコツまでを図や具体例(コピー&ペースト可能なテンプレ付き)で丁寧に解説します。
読み終わる頃には、文章作成・ドキュメント管理・技術資料作成に自信を持ってMarkdownを使えるようになっているはずです。
この記事で学べること:
- 基本の書き方(見出し・段落・改行・強調)とその意図
- リスト、テーブル、リンク、画像、ファイルの扱い方
- コードブロック、数式、Mermaid/PlantUMLなど図表の拡張記法
- 実務で便利なテンプレ(議事録・TODO・README・AIプロンプト等)
- エディタ選び・互換性・よくある落とし穴と解決法
まずは「基本10項目」を押さえて、あとはテンプレをコピペ→カスタマイズするだけ。
さあ、はじめましょう!
マークダウン入門 ─ 概要と使う理由
マークダウンとは何か(定義と特徴)
マークダウンはプレーンテキストで書くだけで構造化された文書を作れる記法です。
人が読みやすいまま書けて、後でHTMLやPDFなどに変換しやすいのが最大の特徴です。
次のポイントを押さえると理解しやすいです。
- 可読性が高い:装飾タグだらけにならず、元のテキストがそのまま読める。
- 学習コストが低い:見出しやリスト、強調など基本は数種類の記号で表現できる。
- 変換しやすい:レンダラー(エディタやサイト)が解釈してHTML等に変換する。
- 拡張が豊富:数式や図、タスクリストなどは拡張(フレーバー)で対応することが多い。
簡単な実例(マークダウン記法そのまま):
# 見出し1
## 見出し2
**太字** と *斜体*
- 箇条書き
1. 番号付きリスト
`インラインコード`
```js
// コードブロック(言語指定でハイライト可能)
console.log("Hello");
[リンクの例](https://example.com)
| 見出しA | 見出しB |
| ---- | ---- |
| セル1 | セル2 |
(上は記法そのままの例です)
歴史・普及状況と他形式(HTML/Office)との違い(互換性の注意)
マークダウンは軽量で汎用性が高いため、多くのツールやサービスで採用されています。
ただし“マークダウン”は一つの厳密な標準ではなく、実装差がある点に注意が必要です。
- 普及状況:Git系のプラットフォームやドキュメントツール、スライド生成ツール、ノートアプリなどで広く使われる。
- HTMLとの違い:HTMLは表現力が高いかわりにタグが多く可読性が落ちる。マークダウンは簡潔さ重視で、後からHTMLへ変換する用途に向く。
- Office(Word 等)との違い:Officeはリッチなレイアウトや複雑な表現に強いが、プレーンテキストで差分管理するには向かない。
- 互換性の注意点:
- フレーバー差:GitHub Flavored Markdown や各種エディタでサポートする拡張(表、チェックボックス、数式など)が異なる。
- 構文の扱い:同じ記法でもレンダラーにより表示が異なる(改行の扱い、表の拡張、HTML埋め込みの可否)。
- エスケープ処理:記号をそのまま表示したい場合はエスケープが必要(“ を使用)。
- 変換時の調整:OfficeやPDFへ変換する際はスタイルや表の細かい調整が必要なことがある。
比較表
| 項目 | マークダウン | HTML | Office (Word等) |
|---|---|---|---|
| 可読性(生テキスト) | 高い | 低い | 中〜低 |
| 学習の容易さ | 簡単 | やや難しい | UI依存(操作を覚える必要) |
| 表現豊富さ | 中(拡張可) | 高 | 非常に高 |
| バージョン管理との相性 | 非常に良い | 良い(差分読みづらい) | 悪い(バイナリ形式等) |
| レンダラー依存 | 高い(フレーバー差あり) | 低い(ブラウザが標準解釈) | 高い(アプリ依存) |
マークダウンを使うメリット・活用シーン(資料作成・議事録・AIプロンプト等)
主なメリット(箇条書き)
- 素早く書ける:記号で簡潔に構造化でき、執筆のスピードが上がる。 ✅
- 編集・差分管理が容易:プレーンテキストなのでgitなどで履歴管理しやすい。⚡
- 多用途に変換可能:HTML、PDF、スライド、READMEなどへ変換しやすい。
- ツール間の持ち運びが容易:テキストファイルなので複数ツールで再利用できる。
- AIとの相性が良い:プロンプトや出力のフォーマット指定にそのまま使える。
代表的な活用シーンと利点(表)
| 利用シーン | なぜ向くか | すぐ使える例 |
|---|---|---|
| README / ドキュメント | 構造が明確で読みやすい | プロジェクト概要+インストール手順 |
| 議事録・会議メモ | 箇条書き・タスク管理が容易 | タスクをチェックリストで管理 |
| ブログの原稿 | プレーンな執筆環境で集中できる | コードや表の埋め込みが容易 |
| スライド生成 | Markdown→スライドツールで自動生成可 | 短時間で発表資料を作成 |
| AIプロンプト / レスポンス | 出力フォーマットを明示できる | 「以下を Markdown で出力してください」 |
実用テンプレ(議事録):
# 会議タイトル(YYYY-MM-DD)
## 参加者
- 田中
- 佐藤
## 議題
1. 今週の進捗
2. リリース日調整
## 決定事項
- リリース日は **YYYY/MM/DD** に設定
## TODO
- [ ] 仕様書更新(担当:田中)
- [x] テスト環境構築(担当:佐藤)
`
AIプロンプト用の例(Markdownで期待する出力を指定):
次の要件に基づいて、**見出し3つ+箇条書き3項目**の短い提案をMarkdown形式で出力してください。
- タイトル:新機能アイデア
- 目的:ユーザー定着率向上
補足(実践で押さえる小さなコツ)
- まずは基本10個を覚える(見出し、段落、改行、リスト、番号、強調、リンク、画像、コード、表)。
- レンダラー差の確認:公開先(GitHub、ブログ、Wiki等)でどの拡張をサポートしているか確認する。
- テンプレ化:議事録や記事の雛形をMarkdownで保存しておくと作業効率が劇的に上がる。
- エスケープは覚えておく:
*や_などを文字として表示したい時は*のようにする。 - プレビューを活用:書いてすぐレンダリング結果を確認できるエディタを使う(プレビューで見た目確認)。
基本ルールと文章構造の作り方
以下では、Markdown を使うときにまず押さえておきたい文章構造の作り方を、実例付きでわかりやすく説明します。
見出しの作り方(各レベルの付け方と見せ方)
ポイント
- 見出しは文書の「目次」を作るためのものです。視覚的な装飾ではなく、文書構造を表現するために使いましょう。
- 通常は
#を使うインライン方式(ATX)を使います。深さは#の数で表現(#=h1、##=h2 …)。
基本の書き方(ATX)
# 見出し1(h1)
## 見出し2(h2)
### 見出し3(h3)
#### 見出し4(h4)
Setext(下線)形式(h1/h2 のみ、好みで使える)
見出し1(h1)
=============
見出し2(h2)
-------------
実用的なルール(おすすめ)
- 文章全体で h1 は 1 回だけ(ドキュメント全体のタイトル)。h2 を大項目、h3 を小項目という具合に階層を揃えると読みやすい。✅
- 見出しは簡潔に:「何について書かれているか一目でわかる短い文」 にする。
- 見出しレベルを飛ばさない(例:h2 の下に直接 h4 を置かない)と目次やアクセシビリティで扱いやすい。📌
- SEO や目次生成を意識する場合、重要語を見出しに含めると効果的(やりすぎはNG)。
例(階層の使い方)
# プロジェクト名
## 概要
## 使い方
### インストール
### 実行方法
## ライセンス
段落と改行のルール(改行方法・空行の扱い)
段落(Paragraph)
- 段落は空行(改行を2回)で区切るのが基本です。
- 連続する行は自動で一つの段落として扱われます(つまり、行を分けても段落は継続する)。
例:段落の書き方
これは1つめの段落です。
改行しても同じ段落に見える場合があります。
これは別の段落です(上と空行で区切る)。
改行(行内で強制的に改行したいとき)
- 通常の単一改行は段落を分けません(レンダラーに依存する場合あり)。
- 「行末にスペースを2つ入れて改行」が最も互換性の高い方法です。
- または HTML の
<br>を使う方法もあります(ただし可搬性が下がる場面あり)。
改行の実例
これは行末にスペースを2つつけて
改行します。
あるいは明示的に<br>タグを使って改行することも可能です。
空行の重要性
- 見出し、リスト、コードブロック、引用などブロック要素の前後には空行を入れると誤解釈を防げます。
例:見出しの直後にリストを書くときは空行を入れると安定して表示されます。
よくあるミス
- メモ帳などでエディタの行折り返しだけで「改行したつもり」になり、Markdown上は改行されないことがあります。常に「空行」「行末スペース」などのルールを意識しましょう。💡
水平線(区切り線)の挿入
用途
- セクションの「テーマ分け」や視覚的な区切り、注釈と本文の区切りなどに使います。過度の使用は避けること。
書き方(いずれも行の先頭に置く・独立行にする)
---
(ハイフン3つ以上)
***
(アスタリスク3つ以上)
___
(アンダースコア3つ以上)
注意点
-*_を混ぜても構いませんが、同一行にテキストがあると水平線にならない(行は単独にする)。- 多くのレンダラーは前後に空行があった方が安全にレンダリングされます。
- リストや見出しの途中で誤って水平線を書かないように注意(たとえば
- itemの直後に---を書くと意図せず区切りになることがある)。
使用例(文書内での使い方)
## セクションA
本文...
---
## セクションB
別の内容...
まとめ
- 見出しは
#で階層を作り、h1 は文書タイトルに1回だけ使うと整理しやすい。 - 段落は空行で区切り、行内改行は行末にスペース2つか
<br>を使う。エディタの折り返しと混同しない。 - 水平線は
---/***/___を独立行に置いてセクションを分ける。前後に空行を入れるのが安全。
便利な参照小技(ワンポイント)
- 下書き時は プレビュー機能 を頻繁に確認することで、改行や見出しレベルのミスを早く見つけられます。🔍
- 複雑な文書は 目次(TOC)生成 を活用すると見通しがよくなります(多くのレンダラー/プラグインが対応)。
文字装飾と強調表現
本文では、Markdownで使う文字装飾と強調の手法を初心者向けに丁寧に解説します。
強調(太字・斜体・併用表現)
何に使うか
重要な語句やキーワード、注意を促す部分に使います。読み手の視線を誘導するために適度に使いましょう。
基本の記法(入力例)
*斜体* または _斜体_
**太字** または __太字__
***太字かつ斜体*** または ___太字かつ斜体___
見た目(出力例)
斜体 / 太字 / 太字かつ斜体
使い分けのコツ
- 見出しやセクションタイトルでやや強めに主張したい → 太字。
- 軽い強調(外来語・定義語など) → 斜体。
- 特に強調したい重要ポイント → 太字かつ斜体。
- やりすぎ注意:本文中に太字を多用すると強調効果が薄れる。
実用例
重要:**締切は明日です**。
備考:*参考資料は別添*。
取り消し線・下線などの表現(取り消し・装飾系)
取り消し線(打ち消し)
- 記法(入力):
~~取り消し線~~
- 出力例:
取り消し線
下線(アンダーライン)
- 標準Markdownには下線の記法はありません。必要な場合は HTMLタグを併用するか、利用するレンダラーの拡張機能を使います。
<u>下線テキスト(HTML使用)</u>
- 出力例:下線テキスト(HTML使用)
打ち消し・下線の使い分け
- 取り消し線:変更履歴や「もう有効でないもの」を示す時に有効。
- 下線:強調の一種として使う場合があるが、Webではリンクと混同されやすいので注意。🔗
注意点
- HTMLタグ(例:
<u>)は一部のレンダラーで無効化されることがある。互換性を確認してください。 - 見た目だけの装飾はアクセシビリティを損なう場合があるので、意味付けがある場合だけ使うのが良いです。
文字色・スタイル変更(エディタ依存の拡張)
概要
色やフォントサイズの変更は、標準Markdownの仕様には含まれないため、サポート状況はレンダラー(GitHub、ブログプラットフォーム、ノートアプリなど)によって異なります。多くの場合はHTMLや独自の拡張(フレーバー)を用います。
代表的な方法(例)
- HTML を使う方法(レンダラーが HTML を許可している場合):
<span style="color: red;">赤文字の例</span>
- カスタムショートコードや拡張シンタックス(プラットフォーム依存)
- 例:
:::redのような独自構文(使えるかはサービス次第)
注意点とベストプラクティス
- 互換性に注意:公開先で色指定が無効になると意図が伝わらない。
- 意味を与える色使い:色は意味(例:赤=重要、緑=完了)を補助するために限定的に使うと効果的。
- 色だけで情報を伝えない:色覚多様性(色覚異常)を考え、色と別の手段(アイコンやラベル)で情報を伝える。🎯
例(代替案):色が使えない場合は 絵文字や太字で代替するのが安全です(下記で絵文字の使い方を説明します)。
絵文字の使い方
いつ使うか
絵文字は視覚的に短い情報や感情、ステータスを示すのに有効です。箇条書きの先頭やステータス表示で使うと視認性が上がります。😊
使い方の例
- ✅ 完了したタスク
- 🔜 次回対応
- ⚠️ 要注意ポイント
出力例
- ✅ 完了したタスク
- 🔜 次回対応
- ⚠️ 要注意ポイント
注意点
- 過度の使用はカジュアルすぎる印象を与える。ビジネス文書では節度を保つ。
- プラットフォームによって絵文字の見た目が異なる(OSやブラウザ依存)。
- 絵文字は意味の補助に使い、本文の重要情報はテキスト(太字等)で明示する。
まとめと実践ワンポイント
短いルール集
| 表現 | 記法(入力) | 用途 | 注意点 |
|---|---|---|---|
| 太字 | **太字** | 強い注目 | 多用しすぎない |
| 斜体 | *斜体* | 軽い強調・定義 | 強調度合いを調整 |
| 太字+斜体 | ***強調*** | 最重要箇所 | 節度をもって使用 |
| 取り消し線 | ~~打ち消し~~ | 無効化・履歴表示 | 履歴用途に限定 |
| 下線 | <u>下線</u> | 装飾(リンクに注意) | HTML許可が必要 |
| 文字色 | <span style="color:..."> | 色で区別(補助) | 互換性・アクセシビリティ注意 |
| 絵文字 | ✅ など | 状態表示・視認性向上 | 多用は避ける |
実践のコツ
- まずは 太字・斜体・取り消し線・絵文字をマスターするだけで大半の装飾ニーズは満たせます。
- 色や下線は互換性とアクセシビリティを確認した上で限定的に使う。
- 下書き時に レンダリング(プレビュー)を確認し、強調が過剰になっていないかチェックする。🔍
リストと入れ子表現(箇条書き系)
以下では、Markdownでリスト(箇条書き)を扱う実践的な方法を、初心者向けに丁寧に解説します。
実例/注意点/使いどころをわかりやすく提示します。
箇条書き(バレットリスト)と番号付きリストの書き方
概要
箇条書き(バレット)と番号付きリストは、情報を整理して読みやすくする基本要素です。書き方はシンプルで、テキストの先頭にマーカーを置きます。
基本記法(代表例)
- 箇条書きの項目(ハイフン)
* 箇条書きの項目(アスタリスク)
+ 箇条書きの項目(プラス)
1. 番号付きリストの最初
2. 次の項目
ポイント
- どのマーカー(-, *, +)を使っても動作することが多い。見た目や統一性のためにプロジェクト内で統一すると良い。
- 番号付きリストは
1.2.のように書くが、多くのレンダラーでは1.を繰り返しても自動で通し番号になる(1. 項目、1. 次→ 表示は 1,2)。 - リストと別のブロック要素(見出しや段落)の間には空行を入れると解釈ミスを防げます。
実例(バレット)
- 前提条件
- タスク一覧
- 備考
実例(番号)
1. 要求定義
2. 実装
3. テスト
よくあるミス
- 行頭のスペース不足や行末の不整合でリストと認識されないことがある。
- リストアイテム内で改行するときは、次の行をインデントするか空行を使わないと別ブロック扱いになる場合がある(レンダラー依存)。
ネスト(入れ子リスト/インデント)と入替えルール
概要
リストの入れ子(ネスト)は、階層的な情報を整理するのに便利です。インデントで階層を表現します。
書き方の基本
- スペース2〜4個またはタブでインデントすることでネストできます。一般的にはスペース2〜4で統一するのが無難です。
- 親項目1
- 子項目1-1
- 子項目1-2
- 孫項目1-2-1
- 親項目2
番号リストとバレットの混在
1. まず準備
- 依存関係を確認
- 設定ファイルを準備
2. 実行
注意(入替えルール)
- 同じレベルのリスト内ではマーカーを統一すると可読性が上がります(例:すべて
-にする)。 - ネストの深さが増えると可読性が低下するため、3段階程度を目安にする。深い階層は別セクションに分割することを検討する。
- 一部のレンダラーは タブとスペースの混在で期待通りにネストできない場合がある。プロジェクトでどちらかに揃える。
レンダラー差による注意
- 一部の環境では、リスト内の段落やコードブロックを入れる場合、追加のインデント(4スペース等)や空行が必要。プレビューで確認しましょう。
チェックリスト(タスクボックス)と管理のコツ
概要
チェックリストはタスク管理に便利で、多くのレンダラー(例:GitHub Flavored Markdown)でサポートされています。形式は - [ ](未完了)と - [x](完了)です。
基本記法
- [ ] 未完了タスクA
- [x] 完了したタスクB
実例
# TODO(2025-09-02)
- [ ] 仕様書の更新
- [x] テスト環境の構築
- [ ] ドキュメントのレビュー
管理のコツ
- 担当者・期限・優先度を併記すると運用がしやすい(例:
- [ ] 仕様書更新 @田中 期限:2025-09-10)。 - 長いリストはセクション分け(見出しでグループ化)して見やすくする。
- 定期的に未完了項目を整理(古いものをクローズ)するとTODOが死なない。👍
注意点
- チェック状態の保存がレンダラー側の機能に依存する場合がある(単なるテキストファイルではチェック状態を手動で編集する必要がある)。
- 協業で使う場合は、課題トラッキングとの連携方法(GitHub issue 等)を明確にしておくと効率的。
リスト入力の支援・ショートカット(入力補助)
概要
リスト作成は頻出作業なので、エディタやツールの機能を活用すると効率が格段に上がります。ここでは一般的な支援機能と汎用ショートカットを紹介します(※エディタによって差があります)。
汎用的な入力補助・操作
- Tab / Shift+Tab:インデント(入れ子)・アウトデント(戻す)に使えることが多い。
- 行頭で
-や1.を入力して Enter:次の項目が自動で続く(自動継続)。 - 選択して「リスト化」ボタン:GUIエディタ(WYSIWYG)やMarkdownエディタには、選択範囲を一括でリスト化するボタンがある。
- スニペット・テンプレート:よく使うリスト形式(議事録テンプレ、チェックリスト)をスニペットとして登録しておくと高速入力できる。
- 自動整形・Lintツール:Markdownlint 等でスタイルを自動チェックして統一する。
具体的な便利ワークフロー
- 議事録はテンプレを用意(見出し+TODO)して新規作成時はコピペ。
- タスクはチェックリストで書き、期限と担当を併記。
- 長い入れ子が必要な場合は最初に階層構造をアウトライン(見出し)で作ってから中身を埋める。
補助ツール例(用途別)
- プレビュー機能:リアルタイムに見た目を確認できるエディタを使う(Typora、VSCodeのPreview等)。
- ショートカットやスニペット:エディタのユーザー設定でよく使うリストをテンプレ化。
- Lint/Formatter:Markdownの書式を統一するために自動整形を導入。
注意
- エディタ依存の機能(自動番号付け、チェックボックスのクリックで自動反映など)は、別の環境へ移すと動作しない可能性があるため、共同作業時は最小限の機能に依存するか運用ルールを決める。
まとめ(早見表とワンポイント)
リストまとめ表
| 機能 | 記法例 | 用途 | 備考 |
|---|---|---|---|
| 箇条書き | - item * item + item | シンプルな列挙 | マーカーは統一推奨 |
| 番号付き | 1. item | 手順や優先順 | ほとんどのレンダラーは自動番号 |
| ネスト | インデント(2〜4スペース) | 階層構造 | 深すぎない方が◎ |
| チェックリスト | - [ ] - [x] | タスク管理 | サポートは環境依存 |
| 入力補助 | Tab / Shift+Tab, スニペット | 速記・整形 | エディタごとの差を把握 |
ワンポイント
- まずはシンプルに:最初は
-と1.の基本だけ押さえ、慣れてきたらネスト・チェックリストを導入しましょう。 - プレビューで確認:見た目のズレはレンダラー差が原因のことが多いので、公開先のプレビューで最終チェックを。🔍
- 運用ルールを決める:チームで書き方(マーカー、インデント幅、テンプレ位置)を決めておくとメンテが楽になります。📋
リンク、画像、ファイルの扱い
以下では、Markdownでよく使うハイパーリンク、画像、ファイル添付(埋め込み)の書き方と実務上の注意点を、実例つきで丁寧に解説します。
ハイパーリンクの貼り方(内部/外部/参照リンク)
基本(インラインリンク)
[表示テキスト](https://example.com)
参照スタイル(繰返し使う場合に便利)
これは[公式][1]の説明です。
[1]: https://example.com "タイトル(省略可)"
内部リンク(同一文書内の見出しへ飛ばす)
多くのMarkdown環境では、見出しが自動でIDになるのでそのIDを使ってリンクできます。
- [セクションへ移動](#セクションの見出し)
注意:見出しのID生成ルールはプラットフォーム(GitHub, MkDocs, Wiki等)で異なります。日本語の見出しはURLエンコードされる場合や、半角英数字に規格化される場合があるので、プレビューで必ず確認してください。
外部リンクを新しいタブで開く(HTML)
<a href="https://example.com" target="_blank" rel="noopener">外部サイト</a>
セキュリティTIP:target="_blank" を使うときは必ず rel="noopener" を付けて、開いたページから元ページが操作されるのを防ぎましょう。
画像の挿入と表示設定(サイズ・代替テキスト)
基本記法(必ずaltを入れる)
")
例

alt(代替テキスト)の重要性
- アクセシビリティのために必須。スクリーンリーダーや画像が読み込めない環境で内容を伝える。
- 画像が装飾目的のみの場合は
alt=""(空文字)にすることでアシスティブツールのノイズを減らせます。
サイズ指定やレイアウト調整(標準Markdownでは不可 → HTML or 拡張)
<!-- 幅を指定 -->
<img src="https://example.com/image.png" alt="製品イメージ" width="400">
<!-- CSSで細かく指定 -->
<img src="https://example.com/image.png" alt="製品" style="max-width:100%;height:auto;">
プラットフォーム拡張(例)
- 一部の静的サイトジェネレータやブログでは
{width=50%}のような独自拡張をサポートします。使えるかは環境確認が必須です。
画像のキャプション
標準Markdownにキャプションはないため、<figure> と <figcaption> を使うか、画像の下に小さくテキストを書く方法が一般的です。
<figure>
<img src="..." alt="...">
<figcaption>図1: 製品外観</figcaption>
</figure>
Lazy loading(遅延読み込み)
大きな画像が多い場合、HTMLで loading="lazy" を指定できる環境があります。パフォーマンス改善に有効。
ファイル添付・埋め込み(PDF・添付ファイルの扱い)
ファイルへのリンク(最も互換性高い)
[仕様書(PDF)](files/specification.pdf)
- ローカルリポジトリや同一サーバー上のファイルへは相対パスでリンク可能。
- 多くのMarkdownビューア(GitHub等)はPDFをクリックでダウンロードまたはプレビュー表示します。
PDFやファイルをページ内に埋め込む(HTML使用)
<!-- 埋め込み(ブラウザが対応すれば表示される) -->
<iframe src="files/specification.pdf" width="100%" height="600px"></iframe>
<!-- あるいは object タグ -->
<object data="files/specification.pdf" type="application/pdf" width="100%" height="600">
<p>PDFを表示できません。 <a href="files/specification.pdf">こちらをダウンロード</a>してください。</p>
</object>
注意:埋め込みは閲覧環境でブロックされることがあります(ブラウザ設定やプラットフォームの制限)。常にダウンロード用リンクの併記を推奨します。
プラットフォーム固有の添付機能
- SlackやNotion、Confluence等はUIでファイルを添付し、独自の表示方法やプレビューを提供します。Markdownのリンクだけでなく、プラットフォームの添付機能を使うとユーザー体験が向上します。
ファイルサイズと配布のベストプラクティス
- 大容量ファイルは外部ストレージ(S3等)に置く、または圧縮して配布する。
- バイナリのバージョン管理は避ける(リポジトリ肥大化の原因)。必要ならリリース機能やアーティファクト管理を使う。📦
セキュリティとプライバシー
- 公開リポジトリに機密ファイル(APIキー、個人情報など)をアップしない。
- 外部リンクや添付ファイルはウイルススキャンや権限管理を行って配布する。🔒
方法比較
| 操作 | 標準記法 | 埋め込み可否 | 互換性 | 備考 |
|---|---|---|---|---|
| 外部リンク | [text](url) | × | 高 | シンプルで最も互換性高い |
| 参照リンク | 参照式 [text][id] | × | 高 | 同じURLを複数箇所で使うと便利 |
| 画像表示 |  | ○(画像表示) | 高 | alt必須。サイズはHTML/拡張で調整 |
| 画像サイズ指定 | HTML <img> or 拡張 | ○ | 中〜低 | 環境依存 |
| PDF埋め込み | HTML <iframe>/<object> | ○(環境次第) | 低〜中 | 常にダウンロードリンクを併記 |
| ファイル配布 | [file.pdf](path) | ×(リンク) | 高 | リポジトリ肥大化注意 |
実践チェックリスト(作成時に必ず確認する項目)
- [ ] altテキストをすべての画像に記載したか?(アクセシビリティ)
- [ ] 外部リンクに
target="_blank"を使う場合はrel="noopener"を併記したか?(HTML使用時) - [ ] 大容量ファイルをリポジトリに直接置いていないか?(バージョン管理の最適化)
- [ ] 埋め込みが必要なら、閲覧先の環境での動作をプレビューで確認したか?
- [ ] 機密情報がリンクや添付に含まれていないか?(セキュリティ)
まとめ(ワンポイント)
- リンクは相対/絶対で使い分け:ドキュメント内で移動するなら相対パス、外部参照は絶対URL。
- 画像は必ずaltを入れる。サイズ調整はHTMLやレンダラー拡張で行うが、互換性を確認する。
- ファイルはリンクで配布するのが最も互換性が高い。埋め込みは利便性は高いが環境依存。
- セキュリティとアクセシビリティを常に意識して記述することが、良いMarkdown文書の基本です。✨
コードや技術文書向けの記法
以下では、インラインコードやコードブロックの書き方、言語指定・ハイライト、長いコードや行番号など実務でよく出る注意点を、初心者にもわかるように実例付きで丁寧に解説します。
インラインコードとコードブロック(言語指定とハイライト)
インラインコード(文章中にコード片を入れる)
- 記法:バッククォート
`で囲みます。
例:printf("Hellon"); - 用途:関数名・コマンド・ファイル名など短いコードを文中で示すときに使います。
- エスケープ:コードにバッククォートが含まれる場合は、囲むバッククォートの本数を増やします(例:
inlineでinline“ を表現)。
コードブロック(複数行・言語指定)
- 基本(フェンス方式):
// ここにコード
例(JavaScript):
// example.js
function greet(name) {
console.log(`Hello, ${name}!`);
}
language部分にjs,python,bashなどを付けると、多くのレンダラーで構文ハイライトが有効になります(サポートする言語名は環境による)。- 別方式(インデント方式):行頭を 4スペース またはタブでインデントするとコードブロックになります。ただしフェンスの方が扱いやすく互換性も高いです。
フェンスの種類
- バッククォート “` とチルダ ~~~ の両方が使える場合があります。
- 注意:コード内に
`(3つ) の区切りがある場合、フェンスに(4つ) を使えば囲えます(フェンスは囲む側が長ければ良い)。
出力や端末例を示す場合
- シェル出力は
bash/sh/console/textなどを付けると読みやすくなります。
$ git status
On branch main
表記例:ファイル名や言語を明示したい場合
- 多くのツールはフェンスの直後に情報を渡せます(例:“`python)。環境によっては更にメタデータをサポートしますが、その可否はレンダラー依存です。
コードのレンダリング例と注意点(長いコード・行番号等)
短い指向のルール(ベストプラクティス)
- 例を小さく切る:技術文書では「1つの意図に対して短いコード例」を用意する方が理解されやすい。
- コメントで説明を補う:コード内に短いコメントを入れて意図を示す。
- 出力例をセットで示す:入力コードの直後に出力例を置くと理解が早い。
長いコードの扱い(何をするか)
- ドキュメント本文に数百行をそのまま貼るのは避け、要点だけ抜粋して示す。フルソースは別ファイル(リポジトリ/Gistなど)に置いてリンクするのが実務的です。🔗
- どうしても長いコードを載せる場合は、目次・折りたたみ(details タグ)や外部ファイル参照を併用すると読みやすくなります(折りたたみはHTMLが許されるレンダラーで有効)。
行番号表示(自動 vs 手動)
- 多くのレンダラーは 行番号表示をプラグインや設定で追加できます(例:静的サイトジェネレータのハイライター)。環境によって対応が異なるため、ドキュメントでは次のどちらかを使って対応します:
- レンダラーの機能を使う:サイト全体のハイライト設定で行番号を有効にする。
- 手動で番号を付ける:短い例ならコードブロック内に番号をコメントとして入れる。
手動番号例(言語に依存しない)
1 def add(a, b):
2 return a + b
3
4 print(add(2, 3))
注意点:手動番号はコピー&ペースト時に邪魔になるので、可能なら自動行番号機能を使う方が親切です。
折りたたみ(長い例の可読性向上)
- HTML が許されれば
<details>を使できます(ただし全レンダラーで動くわけではない)。
長いサンプル(クリックで開く)
# 長いコードの例(実際は外部ファイルで管理すること推奨)
def long_function():
# ...
pass
ハイライトの互換性と注意
- 構文ハイライトの見た目・対応言語はレンダラー依存です。表示が崩れる場合は
text(無色)やnohighlightを使って安全に表示する。 - セキュリティ:コード内に秘密情報(APIキー、パスワード)を絶対に載せない。公開ドキュメントではプレースホルダに置き換える。🔒
コードを説明する際の良い習慣
- 目的を短く書く(例:この関数は X を行う)。
- 入力と出力を示す(引数・戻り値の型や意味)。
- 最小実例を載せる。
- 拡張や例外ケースは別セクションで扱う。
例:説明付きの小さなテンプレート
### 関数名:add
**目的**:2つの数値の和を返す。
**例**
```python
def add(a, b):
"""a と b を加算して返す"""
return a + b
print(add(2, 3)) # 出力: 5
(上のように「目的→例→出力」の流れで示すと読み手に優しい)
比較表:インライン vs ブロック、短所と対処法
| 種類 | 主な用途 | メリット | 注意点 / 対処法 |
|---|---|---|---|
| インラインコード | 関数名・コマンド・ファイル名 | 文脈が崩れず自然 | バッククォート含有時は囲みを増やす |
| コードブロック(短い) | 動作例、小スニペット | 読みやすい、ハイライト可 | 無駄に長くしない |
| コードブロック(長い) | ライブラリや完全なソース | 単体で参照可能 | 外部ファイルに分離/折りたたみ推奨 |
まとめ(実務で役立つワンポイント)
- まずはインラインと短いコードブロックを活用し、長いソースは外部で管理してリンクする。
- 言語指定(例:“`python) を付けると可読性が大きく向上するが、表示はレンダラー依存であることを忘れない。
- 行番号や折りたたみ、コピー機能は便利だが環境依存。共同作業の相手に合わせて選ぶ。
- セキュリティ最優先:本番キーや個人情報は決してドキュメントに載せない。
- 説明→コード→出力 の順で示すと、読者にとって理解しやすい。
表、引用、注釈などのレイアウト要素
以下は、Markdownで表(テーブル)・引用ブロック・脚注(注釈)を扱う方法を、初心者向けに丁寧にまとめた解説です。
実例・注意点・ベストプラクティスを提示します。
表(テーブル)の書き方と整形ルール
用途と基本
テーブルはデータを行と列で整理するのに便利です。Markdownのテーブルは簡潔に書けますが、機能は限定的(セル内の改行や複雑な結合はHTMLが必要)です。
基本構文(簡単な例)
| 見出しA | 見出しB | 見出しC |
|---|---|---|
| セル1 | セル2 | セル3 |
| セル4 | セル5 | セル6 |
整形(列の配置)
列の文字寄せはヘッダの下の区切りで指定します。
| 指定 | 記法例 |
|---|---|
| 左寄せ | :--- |
| 中央寄せ | :---: |
| 右寄せ | ---: |
例(寄せのサンプル)
| 左寄せ | 中央寄せ | 右寄せ |
|:---|:---:|---:|
| 左 | 中 | 右 |
出力例
| 左寄せ | 中央寄せ | 右寄せ |
|---|---|---|
| 左 | 中 | 右 |
注意点・実務のコツ
- ヘッダ行は必須にする(視認性・アクセシビリティのため)。
- セル内で
|を使いたい場合はバックスラッシュでエスケープする:|。 - セル内の改行やセル結合(colspan/rowspan)は標準Markdownではサポートされないので、複雑な表は HTML タグ(
<table>)を使うか、画像にする。 - 表が長くなると可読性が落ちるため、重要な列だけ表示するか、表を分割する。📊
- CSVベースで編集してから貼り付けると手早く表が作れます。
複雑なセル(HTMLを併用する例)
<table>
<thead>
<tr><th>項目</th><th>説明</th></tr>
</thead>
<tbody>
<tr><td>画像</td><td><img src="..."> 補足説明</td></tr>
</tbody>
</table>
ヒント:プラットフォームによってはHTMLの使用が制限されるため、公開先の仕様を確認してください。
引用ブロックの利用法(引用のネスト等)
基本(単一引用)
引用は行頭に > を付けます。短い引用や引用される文章をわかりやすく示すのに向きます。
> これは引用です。出典や注意点を示すときに使います。
入れ子(ネスト)
ネストは > を追加して深さを表します。引用内にリストやコードも入れられますが、各行に > を付ける必要があります。
> 親の引用
>
> > 子の引用(入れ子)
> >
> > - リストも入れられる
> >
> > ```js
> > // コードも可能(行ごとに > をつける)
> > console.log("Hello");
> > ```
引用にラベル・出典を付ける
引用元を明示する場合は、引用の後ろに小さく出典をつけるか、括弧で示すと親切です。
> これは重要な原則である。
> — 出典: 参考資料名
実務での使い方のコツ
- 長い引用は要約を先に置く(引用全文は折りたたみやリンクにする)。
- 引用の中で見出しを使わない(可読性低下)。代わりに引用外で要約を述べる。
- 引用内のコードやリストは必ず
>を各行に付ける。エディタの「引用ブロック」で自動付与される機能を活用すると楽です。🛠️
引用のアクセシビリティ
引用は文脈上「他者の発言」や「注釈」を示す手段として使うので、誰の何を引用しているかを明確にすると読み手に親切です。
脚注・注釈の記述方法
概要
脚注は本文中に補足情報を置きたいときに便利ですが、脚注の記法はMarkdownの実装によって異なるため、使用前に公開先のサポートを確認してください。
よく使われる脚注記法(Pandoc・Markdown Extra等で動く形式)
本文中に脚注参照を置く:
この方法は簡単です。[^1]
[^1]: ここが脚注の本文です。追加の説明や出典補足を置きます。
出力(想定)
本文に [^1] が表示され、ページの下部などに脚注の内容がまとめて表示されます。
GitHub(GFM)について
- GitHub Flavored Markdown は標準では脚注をサポートしていません(ただし一部のサービスや変換ツールは対応)。
- サポートがない環境では、脚注は単に
[^1]と表示されるだけになるか、別の方法(括弧で注釈を本文内に入れる)にフォールバックします。
代替手段(互換性重視)
- 括弧注:本文中に短い補足を括弧で示す。例:
(注:この手法は~) - 脚注セクションを末尾に置く:
## 注釈セクションを用意し、本文側で(注1)のように参照する。これはどのレンダラーでも確実に動作します。
脚注の使い方のポイント
- 脚注は短めに:長すぎると読者が本文から離れてしまう。
- 番号は自動で振られる場合が多いが、手動で番号管理する運用も可能(ただし面倒になる)。
- 機密情報を脚注に入れない:脚注も公開コンテンツに含まれます。
脚注の例(互換性を考えた実践)
本文の中で簡単に補足を書きたいときは(注1)を使う方法が安定です。
## 注釈
**注1**: この補足は環境に依存せず表示されます。
実用チェックリスト(作成時に確認すること)
- [ ] テーブルにヘッダ行を入れたか(見出しがあると読みやすい)。
- [ ] テーブル内で
|を使う場合はエスケープしたか(|)。 - [ ] 引用に対して出典や文脈の説明を付けたか(誤解を避ける)。
- [ ] 脚注を使う場合、公開先が脚注をサポートするか確認したか。
- [ ] 複雑な表や埋め込みはHTML利用の必要性を検討したか(互換性チェック推奨)。 ✅
まとめ(ワンポイント)
- 簡潔な表はMarkdownの得意分野。複雑な表はHTMLに頼る。
- 引用は情報の出どころを明確にし、ネストするときは
>を重ねて使う。 - 脚注は便利だが実装差に注意。互換性を優先するなら本文末の注釈セクションを使う。
非表示・折りたたみ・特殊表示(拡張UI)
以下は、Markdown 文書で折りたたみ(アコーディオン)や非表示(トグル)を扱う方法を、初心者向けに丁寧にまとめた解説です。
折りたたみ(アコーディオン)や展開要素の扱い(エディタ依存)
概要
折りたたみは、本文の目立たない補足や長いサンプル、詳細説明を隠しておける便利なUIです。Markdown自体の標準仕様には含まれない機能が多いため、環境(レンダラー/プラットフォーム)でのサポート可否が重要です。
代表的な実装方法(例と特徴)
<details>/<summary>(HTML) — 最もシンプルで広く使える
<details>
<summary>クリックで展開(概要)</summary>
折りたたまれた本文や長いサンプルコードをここに置きます。
</details>
メリット:標準HTMLでブラウザがネイティブに処理。キーボード操作や簡単なアクセシビリティが既に備わっていることが多い。
デメリット:一部のMarkdownレンダラーやCMSではHTMLがサニタイズされて使えない場合がある。
- プラットフォーム固有のショートカット / 記法(例:WikiやDocsツールの専用シンタックス)
- 機能は便利だが移植性が低い(他サービスでは動かない)。
- 使う前に公開先のドキュメントを確認すること。
- JavaScriptでのトグル(カスタム実装)
<button aria-expanded="false" aria-controls="details1" id="btn1">詳細を表示</button>
<div id="details1" hidden>
<!-- 折りたたみ内容 -->
</div>
<script>
const btn = document.getElementById('btn1');
const box = document.getElementById('details1');
btn.addEventListener('click', () => {
const expanded = btn.getAttribute('aria-expanded') === 'true';
btn.setAttribute('aria-expanded', String(!expanded));
if (expanded) {
box.hidden = true;
} else {
box.hidden = false;
}
});
</script>
メリット:自在に見た目や振る舞いを制御できる。
デメリット:JS が無効だと動かない。実装が難しい場合がある。
- CSSチェックボックスハック(JS不要だがトリッキー)
<label>
<input type="checkbox" class="toggle">
<span>詳細を表示</span>
<div class="content">ここに折りたたみ内容</div>
</label>
<style>
.content { display:none; }
.toggle:checked + span + .content { display:block; }
</style>
メリット:JS不要。
デメリット:HTML構造やスタイルに依存し、アクセシビリティ考慮が難しい。
テキストを隠す・非表示にする手法(トグル・折りたたみとの違い)
「非表示」と「折りたたみ」の違い
- 折りたたみ(展開可能):ユーザーの操作で表示/非表示を切り替えられる。ユーザーが内容を閲覧することができる。
- 非表示(hidden / display:none 等):初めから視覚・場合によってはスクリーンリーダーにも非表示にする。補足情報やメタデータを隠す用途で使われるが、誤用すると情報を隠蔽してしまうリスクがある。
CSSによる非表示の比較
| 方法 | マークアップ例 | スクリーンリーダーでの扱い | 備考 |
|---|---|---|---|
display:none | <div style="display:none"> | 通常読み上げない | 完全に非表示(DOMには残る) |
visibility:hidden | <div style="visibility:hidden"> | 通常読み上げない | レイアウト領域は残る |
aria-hidden="true" | <div aria-hidden="true"> | アクセシビリティツールは無視 | 補助的に使う(視覚と読み上げの分離) |
<details hidden> / JS toggle | <div hidden> or hidden 属性 | hidden 属性はスクリーンリーダーで読み上げない | 状態管理が容易 |
注意:非表示は「隠す」目的で濫用しない
- 重要な情報や法的に必要な表示(利用規約、価格、免責など)を単に非表示にするのはNG。必ずユーザーがアクセスできる状態にするか、別途明示する。
- セキュリティ誤解:
display:none等で非表示にしても、ページのソースを見れば内容は確認できることが多い。機密情報は絶対に非表示で DOM に残さない(サーバー側で保護する)。
「スポイラー」や「隠しテキスト」の実装例
- 一部のサービス(Reddit 等)では
>! spoiler !<のような専用構文があるが、一般のMarkdownでは動かない。その場合は<details>を使うのが無難。
アクセシビリティとユーザー体験(重要)
必ず守るべき点(要チェック)
- トグルにはラベルを付ける:
<summary>や<button aria-expanded>のように、状態がわかるようにする。視覚だけでなくスクリーンリーダーでも状態がわかることが重要。 - キーボード操作に対応:Tab でフォーカス可能、Enter / Space で開閉できること(
<details>や<button>は基本対応)。 - 初期状態は配慮する:重要な説明は折りたたんだままにしない。デフォルトで閉じるべきか開くべきかを文脈で判断する。
- 代替手段を用意する:レンダラーが折りたたみをサポートしていない場合の表示(例:折りたたみが無効なら全文表示される、もしくは「詳細は別ページ」リンクを用意)を考慮する。
- 視覚的ヒントを与える:展開可能であることを示す矢印などのアイコンやテキストを付けると親切。🔽▶️
方法比較
| 方法 | 書き方の簡単さ | 互換性 | アクセシビリティ | 推奨される用途 |
|---|---|---|---|---|
<details> | ★★★ | 中〜高(HTML許可なら良好) | ★★★ | FAQ、コードサンプル、補足説明 |
| HTML + JS トグル | ★★ | 中(CMSの制限による) | ★★(適切実装で◎) | カスタムUIが必要な場合 |
| CSSチェックボックスハック | ★★ | 低〜中 | ★(注意が必要) | 軽いトグル、JS不可環境 |
| プラットフォーム独自記法 | ★★★ | 低(移植不可) | 変動 | そのサービス内での利便性重視 |
display:none 等(非表示) | ★★★ | 高 | ★(大抵不可) | データの一時非表示、装飾目的(注意) |
実践テンプレ(Markdown内で使う推奨パターン)
<details>
<summary>補足:実行結果の詳しい解説(クリックで展開)</summary>
ここに補足説明を記載します。コードや長い表を置くのに向いています。
```bash
# サンプルコマンド
echo "Hello"
```
</details>
アクセシブルなボタン(JSあり)テンプレ
<button id="toggle1" aria-expanded="false" aria-controls="section1">詳細を表示</button>
<div id="section1" hidden>
<p>ここが折りたたまれた内容です。</p>
</div>
<script>
(function(){
const btn = document.getElementById('toggle1');
const sec = document.getElementById('section1');
btn.addEventListener('click', () => {
const expanded = btn.getAttribute('aria-expanded') === 'true';
btn.setAttribute('aria-expanded', String(!expanded));
sec.hidden = expanded;
});
})();
</script>
実用チェックリスト(作成時に確認する項目)
- [ ] 折りたたみで隠す内容は補助的な情報のみになっているか(必須情報は隠さない)。
- [ ] 折りたたみ要素にわかりやすいラベルを付けたか(例:「詳細」「手順(展開)」など)。
- [ ] キーボード操作で開閉できるか確認したか(Tab→Enter/Space)。
- [ ] JS依存の実装なら、JS無効時の代替表示を用意したか。
- [ ] 機密情報をDOMに残して「非表示」していないか(サーバー側保護が必要)。
- [ ] 折りたたみが使えない環境での見え方をプレビューで確認したか。 ✅
まとめ(ワンポイント)
- まずは
<details>を試すのが手っ取り早く安全。多くのブラウザでネイティブに動き、アクセシビリティの基本も備えています。 - 非表示は「隠す」ための簡単手段だが誤用厳禁。重要情報は必ずアクセス可能に。🔒
- レンダラー依存を常に意識し、公開先での表示確認(プレビュー)を欠かさないことが最も重要です。🔍
図表・数式・ダイアグラムの拡張記法
以下は、Markdown文書でよく使う数式(LaTeX風)・Mermaid・PlantUMLの使い方を、初心者にもわかるように丁寧にまとめた解説です。記法の例・導入方法・注意点・実務的なコツを提示します。本文中では太字・絵文字・表を適切に使っています(見出しは装飾していません)。
数式(LaTeX風の記法・ブロック表示)
何に使うか
論文風の数式、アルゴリズムの数式表現、化学式などを文書内に自然に埋め込むときに使います。Markdown自体は数式を定義していませんが、MathJax や KaTeX といったレンダラーを使うことで LaTeX 風の記法が使えます。
基本記法(よく使う形式)
- インライン数式(本文中):
$ ... $
例:オイラーの等式 $e^{ipi}+1=0$ は有名です。→ e^{ipi}+1=0(レンダラーにより表示) - ブロック数式(中央表示):
$$ ... $$または[ ... ]
例:
$$int_0^infty e^{-x^2},dx = frac{sqrt{pi}}{2}$$
- 環境(複数行、整列):
align等を使えます(レンダラーによる)。
begin{align}
a^2 + b^2 &= c^2
e^{ipi} + 1 &= 0
end{align}
導入のしかた
- 静的サイト / Docs:MkDocs や Docusaurus、Hugo などはプラグインで MathJax/KaTeX を有効化できます。
- ノートアプリ:Obsidian は設定で KaTeX をオンにできます。
- GitHub:README.md 等のレンダリングにおいて GitHub は(伝統的に)数式をネイティブではサポートしていません。GitHub Pages や他ツールで MathJax を組み込む必要があります。
注意点とベストプラクティス
- 互換性:
$...$が使えるかは公開先のレンダラー依存です。公開前にプレビューで確認を。🔍 - エスケープ:Markdown の文法と競合する記号がある場合はエスケープやコードブロックで回避する。
- 可読性:数式は必要最小限に絞る。長い導出は別ファイルに置いてリンクするのがおすすめ。
- アクセシビリティ:数式はスクリーンリーダーで読み上げにくいので、要約や本文中の言葉で意味を補う。📘
Mermaid記法(フローチャート等)
何に使うか
Mermaidはフローチャート、シーケンス図、ガントチャート、状態遷移図などをMarkdown内で手軽に書けるシンタックスです。コード風の短い記述で図を生成できます。
基本記法(Markdown内の例)
```mermaid
flowchart TD
A[開始] --> B{条件A?}
B -- yes --> C[処理1]
B -- no --> D[処理2]
C --> E[終了]
D --> E
```
(上記はバッククォート3つで囲む mermaid ブロックです)
導入方法
- 多くの静的サイトツール / エディタ は Mermaid のプラグインを提供しています(有効化でレンダリング)。
- VSCode / Obsidian 等のエディタでも拡張でプレビュー可能。
- 画像として出力:
mmdc(Mermaid CLI)やオンラインレンダラでSVG/PNGに変換して埋め込むこともできます。
メリット
- 文書内でテキストベースで編集できるためバージョン管理に向く。
- 図をテキストで修正できるのでコラボに便利。✍️
注意点
- レンダリング差:Mermaidのバージョン違いで記法や機能・スタイルが変わる場合がある。
- 複雑すぎる図は不可読:図はシンプルに保ち、複雑な場合は分割する。
- パフォーマンス:大量の図を一度にレンダリングするとページ表示が遅くなることがある。キャッシュや画像書き出しで対処。
実用ワンポイント
- Mermaid のコードは 命名・コメントを丁寧にしておく(将来の編集が楽)。
- 共同作業では 図のレンダリング確認(プレビュー)を全員が行える環境に統一すること。
PlantUML記法(UMLダイアグラム)
何に使うか
PlantUML は UML 系(クラス図、シーケンス図、コンポーネント図など)をテキスト記述で生成するツールです。より UML に近い記法・機能を持ち、ソフトウェア設計書に向きます。
基本記法(例:シーケンス図)
@startuml
Alice -> Bob: Hello Bob, how are you?
Bob --> Alice: I am fine, thanks!
@enduml
基本記法(例:クラス図)
@startuml
class User {
- id: int
- name: String
+ login()
}
class Service
User --> Service
@enduml
導入方法
- ローカルレンダリング:
plantuml.jar(Java)を使ってSVG/PNGに変換して埋め込む。 - PlantUMLサーバ:HTTP API にソースを送って図を生成する(社内の自前サーバを立てることも可能)。
- エディタ拡張:VSCode や IntelliJ 用のプラグインでプレビュー可能。
- CIで画像生成:ビルド時にPlantUMLで図を生成して成果物に含める運用が現場では多い。
メリット
- UMLに特化しているため複雑な設計図が書きやすい。
- テキストでバージョン管理できる。⚙️
注意点
- Java実行環境が必要な場合が多い(ローカルでの変換)。
- PlantUMLサーバにソースを送ると設計情報が外部に出るため、社外サービス利用時は機密漏洩リスクを考慮する必要がある(自前サーバ推奨)。🔒
- 描画オプションやプロパティが豊富で学習コストはMermaidより高い場合がある。
実務のコツ
- ドキュメントには SVG(テキストベース)で出力して埋め込むと拡大しても鮮明で使いやすい。
- PlantUML は テンプレート化して再利用する(共通の見た目や色を定義)。
各拡張のサポート状況と注意(レンダリング環境依存)
一言まとめ:どの拡張も「使えるか」「どう表示されるか」は公開先の環境(レンダラー)に強く依存します。下表は機能・導入難易度・互換性の目安です(環境により変動する点に注意)。
| 拡張 | 代表的な用途 | 導入の容易さ | 表示互換性 | 長所 | 注意点 |
|---|---|---|---|---|---|
| LaTeX(MathJax / KaTeX) | 数式・整列 | 中(設定要) | 中〜高(有効にすれば安定) | 高品質な数式表現 | レンダラー未対応だと表示されない |
| Mermaid | フローチャート・シーケンス | 易(多ツールでプラグイン有) | 中(バージョン差あり) | 軽量で編集しやすい | バージョン差、複雑図は重い |
| PlantUML | UML全般(クラス・シーケンス等) | 中〜低(Java環境やサーバ必要) | 低〜中(埋込は画像化で対応) | UMLに特化、高機能 | サーバ経由は機密注意、学習コストあり |
実務的チェックリスト(導入前に確認すること)
- [ ] 公開先(GitHub Pages / Wiki / CMS / ノートアプリ)がその拡張をネイティブサポートするかを確認したか?
- [ ] ローカルでプレビューできるツールや拡張を用意したか?(VSCodeプラグイン等)
- [ ] 図や数式はSVG/PNGで出力して埋め込む選択肢を検討したか(互換性向上)?
- [ ] PlantUML を外部サーバでレンダリングする場合、ソースの機密性を検討したか?
- [ ] レンダラーのバージョン違いで表示が変わる可能性をドキュメント化したか?
実践ワンポイントとテンプレ(短く使える例)
数式(例)
オイラーの等式(インライン): $e^{ipi} + 1 = 0$
二乗和(ブロック):
$$
(a+b)^2 = a^2 + 2ab + b^2
$$
Mermaid(簡単なフローチャート)
flowchart TD
Start --> Step1[最初の処理]
Step1 --> Decision{問題あり?}
Decision -- Yes --> Fix[修正]
Decision -- No --> End[終了]
PlantUML(クラス図の簡易例)
@startuml
class User {
- id: int
- name: String
+ login()
}
class AuthService
User --> AuthService
@enduml
まとめ(最終チェック)
- まずは小さく試す:数式は簡単な
$$...$$、Mermaid は短い図、PlantUML は短いシーケンスから始める。 - 互換性重視:公開先のプレビューで必ず確認し、互換性が不安なら 画像化(SVG/PNG)して埋め込む。
- セキュリティと機密:PlantUML サーバ等を使う場合はソース漏洩リスクを評価する。🔒
- 可搬性:図をテキストで管理すると編集しやすいが、共有先のサポート状況をチームで合意しておくことが重要。🤝
実践例・テンプレート集(すぐ使えるフォーマット)
ここではすぐコピペして使える Markdown テンプレートを、用途別に実用的にまとめます。
テンプレは短くわかりやすく、日常的に使えるものに絞っています。
使い方の注意やカスタマイズ例も併記します。
よく使うサンプル(見出し一覧・箇条書き・議事録テンプレ等)
以下は頻出の「文書スケルトン」や小さめのテンプレ集です。まずはこのまま貼って使ってみてください。
必要に応じて見出しや項目を増やしてカスタマイズできます。
1) 記事/ブログの基本スケルトン
# タイトル(記事名)
## 導入(問題提起)
短く読者の興味を引く一段落。
## ポイント1(見出し)
- 要点1
- 要点2
## ポイント2(見出し)
1. 手順やポイントを番号で示す
2. 次の手順
## まとめ
**重要ポイント**を一つか二つに絞って結論付ける。
使い方:見出しは h2/h3 で細かく分け、導入→本文→まとめ の流れを守ると読みやすいです。
2) README(プロジェクト)テンプレート
# プロジェクト名
## 概要
一言で何のプロジェクトか説明する。
## 動作環境 / 前提
- Node.js >= X.X.X
- Python 3.X
## 使い方
1. クローンする: `git clone ...`
2. インストール: `npm install`
3. 実行: `npm start`
## ライセンス
MIT / Apache 2.0 など
使い方:最初に「動かすまで」の最低限手順を書いておくと親切です。
3) 簡易チートシート(Markdownの書き方)
# Markdown チートシート
## 見出し
# H1
## H2
## 強調
**太字** / *斜体*
## リスト
- 箇条書き
1. 番号リスト
## コード
`インラインコード`
```bash
# コードブロック
echo "hello"
**使い方**:チームの README に置いて共有すると新人の学習を助けます。📚
#### 4) ブログ投稿テンプレ(SEO意識)
```markdown
# タイトル(キーワードを含める)
## 導入(読者の悩みを列挙)
- 読者の疑問1
- 読者の疑問2
## 結論(要点を最初に提示)
**結論:** ここに最も伝えたいこと
## 詳細(段落ごとに分ける)
### サブ見出しA
具体例・手順
### サブ見出しB
さらに深掘り
## よくある質問(FAQ)
- Q1: ...
- A: ...
## まとめ(行動喚起)
**次にやること**:例:無料テンプレートをダウンロード、購読ボタン
使い方:導入で読者の悩みを列挙し、冒頭で結論を示す「逆ピラミッド」型が読みやすいです。📈
ビジネスでの利用例(TODO・議事録・AIプロンプト用フォーマット)
ここでは実務でそのまま使えるテンプレを示します。
タスク管理や会議の記録、AI に指示を投げる時のフォーマットなど、運用に使える形にしています。
1) TODO(チーム向けチェックリスト)
# TODO(プロジェクト名) - YYYY-MM-DD
## 高優先度
- [ ] タスクA(担当:田中/期限:2025-09-10)
- [ ] タスクB(担当:佐藤/期限:2025-09-12)
## 中優先度
- [ ] タスクC(担当:鈴木/期限:2025-09-20)
## 備考
- 変更点や注意点をメモ
ポイント:チェックリストは - [ ] / - [x] で可視化されます。担当と期限を一緒に書くと運用がスムーズです。✅
2) 議事録テンプレート(シンプル)
# 会議名 - YYYY-MM-DD
## 参加者
- 田中(司会)
- 佐藤
- 鈴木
## 議題
1. 今週の進捗
2. リスク確認
## 決定事項
- **決定1**: リリース日は YYYY/MM/DD に設定
- **決定2**: テスト追加
## アクション(TODO)
- [ ] 仕様書更新(担当:田中/期限:YYYY-MM-DD)
- [ ] テストケース作成(担当:佐藤/期限:YYYY-MM-DD)
## 次回会議
- 日時: YYYY-MM-DD
- 議題案: ...
ポイント:議事録は「決定事項」と「アクション」を明確に分けると追跡しやすいです。🔍
3) AIプロンプト用フォーマット(生成を安定化させる雛形)
# 指示(Prompt)
## 目的
短く:何のための出力か
## 入力データ
- 条件1: ...
- 条件2: ...
## 出力形式(必ず Markdown で)
- 見出し: h2 を使う
- 箇条書き: 箇条書きで3つ
- 例: コードブロックで一例を示す
## 制約・注意点
- 文字数: 200〜400字
- ターンのトーン: 丁寧/カジュアル 等
使い方:AI に正確なフォーマットで返して欲しいときにこの雛形をコピーして使うと、出力が安定します。🤖
4) プロジェクト会報(週次レポート)テンプレ
# 週次レポート - YYYY-WW
## 今週のハイライト
- **完了**: 機能A 実装完了
- **進捗**: B の開発 60%
## 問題点 / リスク
- 問題A: 対応中(見積り増)
## 来週の予定
1. タスクX(担当:田中)
2. タスクY(担当:佐藤)
## 備考
- ミーティング記録へのリンク: [会議メモ](./minutes-YYYY-MM-DD.md)
ポイント:毎週のテンプレを固定しておくと、報告が比較しやすくなります。📊
小さな運用テクニック(実務で差が出るポイント)
- テンプレはリポジトリに保存し
TEMPLATES/フォルダ等で管理すると誰でも使える。 - 日付・担当は短いルールで統一(例:YYYY-MM-DD、名前は姓のみ)すると検索・集計が楽。
- TOC(目次)を自動生成する習慣をつけると長文が見やすくなる(ツール依存)。
- テンプレ内にサンプルデータを入れずに構造だけ置くと使い回ししやすい。
ツール・互換性・運用上の注意点
Markdown を安定して・共同で・長期に運用するための実践的なガイドです。
ここでは「代表的エディタの特徴」「アプリ間で起きる差分」「よくある落とし穴とその対処」を、整理して丁寧に解説します。
代表的エディタとプレビュー機能(VSCode・Webサービス等)
下表は代表的なツールと「使いやすさ」「プレビュー」「拡張性」の観点を簡潔にまとめたものです。運用に合わせて選んでください。
| ツール | プレビュー | 特長 / 向き | 備考 |
|---|---|---|---|
| VSCode(エディタ) | リアルタイムプレビュー可 | 拡張が豊富でバージョン管理と相性◎。大規模なドキュメント向き。 | 拡張(Markdown All in One / Markdownlint 等)を入れると便利。 |
| Obsidian(ノート) | 内蔵プレビュー(分割表示) | ローカルノート管理に強く、グラフ機能やプラグイン多。 | 個人の知識管理に最適。 |
| Typora(WYSIWYG) | 即時レンダリング(編集=表示) | 書きながら最終見た目が確認できる。執筆に集中しやすい。 | エクスポート機能が充実。 |
| GitHub / GitLab(リポジトリ) | Web上プレビュー | README等の最終公開先。差分・履歴管理ができる。 | 一部拡張(脚注等)に制限あり。 |
| 静的サイトジェネレータ(MkDocs, Hugo等) | サイトプレビュー(ローカルサーバ) | ドキュメントサイト運用に向く。CIと連携しやすい。 | プラグインで Mermaid/MathJax を有効化可能。 |
| Notion / Confluence(コラボ) | WYSIWYGに近い | 非技術者と共同編集するドキュメント向け。 | Markdown と完全互換でない所がある(インポートで差分が生じる) |
選び方の目安
- 個人で軽く書く → Typora / Obsidian。
- チームで管理・差分が重要 → VSCode + GitHub(または GitLab)。
- 公開用ドキュメントサイト → 静的サイトジェネレータ + CI。
実践Tip(VSCode の場合)
- プレビューを頻繁に見る習慣をつける(
Ctrl+K Vまたは「Open Preview」)。 - 拡張:Markdown All in One(便利ショートカット)、Markdownlint(スタイルチェック)、Prettier(整形)を検討すると運用が楽になります。
- ワークスペース設定でプロジェクトごとの Markdown ルールを固定するとチーム差を減らせます。✅
アプリ間での差分(サポートしている記法の違い)
何がズレるか(代表例)
- 改行ルール:ある環境では1行改行で段落になる場合があり、別環境では2行必要だったりします(レンダラー差)。
- テーブルの扱い:GFM(GitHub Flavored Markdown)は表をサポートしますが、純粋な CommonMark 実装や一部サービスでは機能が限定的なことがあります。
- 脚注 / タスクリスト / 拡張記法:一部の拡張(脚注、チェックボックス、数式、Mermaid、PlantUML 等)は環境依存で表示されないことがあります。
- HTML の扱い:HTML を埋め込めるか否か(サニタイズされるか)で折りたたみや埋め込みが使えない場合がある。
- 構文ハイライトと言語タグ:
```pythonの結果の見た目や対応言語が違うことがある。
互換性を高める実践ルール
- 公開先を決める(ターゲット):最終表示先(GitHub/Docs等)を先に決め、そのレンダラーに合わせて書く。
- 必須機能以外は避ける:移植性を重視するなら「標準的なブロック要素+基本装飾」の範囲に留める。
- フォールバックを用意:たとえば数式はレンダラー未対応なら画像を置く、脚注は文末注にする等。
- プレビュー環境を揃える:チームで同じエディタ設定・拡張を使うと差分が減る。🔧
具体例
- GitHub に公開するREADMEは GFM に合わせる(チェックボックスやテーブルはOK)。
- 社内Wikiへ貼るなら、そのWikiが Mermaid や HTML を許可しているか確認してから図を書く。
よくある落とし穴と対策(エスケープ/空白/レンダリングズレ)
ここでは頻出のミスと即効で効く対処法を、具体例つきで示します。
1) 行末改行の勘違い
- 問題:見た目上改行したつもりでも、レンダラーで段落にならない。
- 原因:Markdown によって「行末にスペース2つで改行」「空行で段落分離」などルールが異なる。
- 対策:
- 確実に改行したければ行末にスペースを2つ入れるか、空行(完全な空行)を入れる。
- 公開先の挙動はプレビューで必ず確認。
行末にスペースを2つ入れて
改行する例
2) 記号の誤解釈(エスケープ不足)
- 問題:
*や_を文字として書きたいのに強調になってしまう。 - 対策:
` でエスケープする。例:アスタリスク→アスタリスクと表示したいときはアスタリスク`。
*エスケープされたアスタリスク* → 表示: *エスケープされたアスタリスク*
3) リストとブロック要素の結合ミス
- 問題:リスト内にコードブロックや段落を入れたつもりが、意図せずリスト外になってしまう。
- 対策:リスト内のブロック要素はインデント(通常4スペース)を付ける。
- リスト項目
```js
console.log("リスト内のコード")
```
4) テーブル内で | を使いたいとき
- 問題:表のセルに
|が含まれると列がずれる。 - 対策:パイプをエスケープする
|、もしくは HTML テーブルを使う。
| セルA | セルB |
|---|---|
| 値1 | 値2 | 別の値 |
5) 文字コード・改行コードの問題
- 問題:文字化けや差分で改行が大量に検出される(CRLF と LF の混在)。
- 対策:
- UTF-8(BOM無し) を標準にする。
- Git の
.gitattributesで改行コードを統一する(text=auto等)。 - チームでエディタの「行末改行スタイル」を合わせる。
6) HTML を置いたらサニタイズされる/動作しない
- 問題:
<details>や<script>を使ったら表示されない。 - 対策:公開先の制約を確認し、必要なら画像に変換して埋め込むか別ページにリンクする。
7) 拡張記法(Mermaid/Math/PlantUML)がレンダリングされない
- 問題:ソースを置いても図や数式が表示されない。
- 対策:
- レンダラーがその拡張をサポートしているか確認。
- サポートしていなければ SVG/PNG に変換して埋め込む。
- CI やビルドプロセスで図を生成する運用にする(例:PlantUML をビルドで画像化)。
最低限の運用チェックリスト(コピペで使える)
- [ ] 文字コードは UTF-8 (BOMなし) に統一している。
- [ ] プロジェクトに Markdown スタイルガイド(マーカー、インデント幅、見出しルール)を置いている。
- [ ] エディタ拡張(Markdownlint / Prettier 等)で自動整形・検査している。
- [ ] 公開先の プレビューで表示確認 を必ず行っている。
- [ ] 互換性が怪しい拡張(数式・Mermaid 等)は 画像化 or フォールバック を用意している。
- [ ] リポジトリに
assets/(画像・添付)とdocs/(文書)を分けて管理している。✅
まとめ(運用で大切なこと)
- ターゲット(公開先)を先に決める:最終表示先に合わせて記法と拡張を選ぶ。
- プレビューを習慣化:書いたらすぐにレンダリングを確認する癖をつける。🔍
- チームでスタイルを決める:マーカーやインデント、ファイル配置など小さなルールを決めて共有すると後からの工数が減る。📋
- 互換性に不安がある拡張は画像に変換する:確実に表示したければ SVG/PNG 化が最も安全。
まとめ
この記事では、Markdownの概念から実践的な書き方・テンプレ、そして運用上の注意点までを、初心者がつまずきやすいポイントに照準を合わせて解説しました。
最後に、学習を確実に定着させるためのアクションをまとめます。
今回の要点
- Markdownは「読みやすいプレーンテキスト」で、HTMLなどに変換しやすい。
- 見出しは
#、強調は**/*、コードは`/ “` を使うと基本はOK。 - 表・画像・リンク・チェックリスト等は慣れれば作業効率が大幅に向上する。
- MermaidやPlantUML、数式は便利だが公開先の対応状況を必ず確認する。
- 実務ではテンプレ化・プレビュー確認・互換性のフォールバック(画像化等)が重要。
今すぐできる3つの行動
- 基本テンプレを1つ作る(議事録かREADME) — まずは使ってみる。
- プレビューで確認する習慣をつける(VSCodeやTypora等)。
- テンプレをリポジトリに保存してチームで共有する(運用ルールを決める)。
最後に:試してみることが上達の近道です。

