Markdown(マークダウン)でドキュメント、技術記事、ブログ記事、業務マニュアル、仕様書を作成しているとき、「執筆用の自分用メモやTODOを画面に出さずに残したい」「一時的に文章を非表示(コメントアウト)にして、後で復活させられるようにしたい」「記事テンプレートや執筆ガイドラインをファイル内に埋め込んでおきたい」と感じたことはありませんか?
プログラミング言語であれば // や /* ... */、# などでおなじみのコメントアウトですが、Markdownでは「どう書けば画面に表示されないコメントになるのか?」「複数行をまとめて非表示にする方法は?」「GitHub、VS Code、Notion、Obsidian、Qiita、Zennなどでちゃんと非表示になる?」「HTMLソースから第三者に見られてしまう危険性はない?」といった疑問を持つ方が非常に多くいます。
結論から言うと、Markdown自体には専用のコメント記号は定義されていませんが、HTMLコメント記法(<!-- コメント -->)やリンク定義ハック([//]: # (コメント))を利用することで、簡単に文章を非表示にできます。
この記事では、コピペですぐに使える「Markdownコメント逆引きチートシート」をはじめ、基本となるHTMLコメントの書き方、複数行コメント、リンク定義ハックの仕組み、主要エディタ・Webサービス(GitHub / VS Code / Notion / Obsidian / Qiita / Zenn)の対応状況とショートカット、そして公開時に注意すべきセキュリティリスクまでを徹底解説します!
【早見表】Markdownコメント・コメントアウト逆引きチートシート
まずは、Markdownで使える代表的なコメント・非表示記法を一覧表にまとめました。目的に応じて使い分けてみてください。
| 記法名 | Markdown記述例 | HTMLソース出力 | おすすめの用途・特徴 |
|---|---|---|---|
| HTMLコメント(基本) | <!-- ここにメモ --> |
残る(<!-- -->) |
最も標準的。1行〜複数行の非表示に最適 |
| HTML複数行コメント | <!-- |
残る | 段落やセクション全体の一時的な非表示 |
| リンク定義ハック | [//]: # (ここにメモ)[//]: <> (ここにメモ) |
出力されない | HTMLソースにも一切残したくない非公開メモ |
| 脚注ハック | [^_note]: 非表示メモ(本文から未参照) |
出力されない (一部ツール除く) |
文末にまとめてメモを保管しておきたい場合 |
| Obsidian独自記法 | %% ここにメモ %% |
非表示(Obsidian専用) | Obsidian内だけで完結する個人用ノート |
💡 最も迷ったらコレ!使い分けの基準
- 一般的な執筆・一時的な非表示: 世界中で互換性のある
<!-- コメント内容 -->を使うのがベスト - ブログやWeb公開でHTMLソースにも残したくない場合:
[//]: # (コメント内容)を使う - VS Codeで素早く作業したい場合: 行を選択してショートカット
Ctrl + /(MacはCmd + /) を押す
なぜMarkdownには専用のコメント記法がないのか?
プログラミング言語のように // コメント や /* コメント */ といったMarkdownネイティブの構文が存在しない理由には、Markdownの成り立ちが深く関わっています。
Markdownは2004年にジョン・グルーバー(John Gruber)氏によって、「プレーンテキストのままでも読みやすく、かつ簡単にHTMLに変換できる軽量マークアップ言語」として開発されました。
その設計思想の中心にあるのが、「Markdownの構文でカバーされていない表現は、そのまま生のHTML(Raw HTML)を書いてよい」というルールです。HTMLにはすでに <!-- --> という確固たるコメント構文が存在していたため、Markdown独自に新しいコメント構文をわざわざ定義する必要がなかったのです。
1. 基本の書き方:HTMLコメント記法(<!– –>)
Markdownでコメントアウトを行う最も標準的で汎用性の高い方法が、HTMLのコメントタグ <!-- コメント内容 --> を使用する方法です。
1行コメントの書き方
行全体、または文章の前後に <!-- と --> を記述します。
<!-- ここは執筆者用の非表示メモです。ブラウザには表示されません -->
これは通常の本文です。読者にはこの行だけが表示されます。
ブラウザやMarkdownビューアでの表示結果:
これは通常の本文です。読者にはこの行だけが表示されます。
コメントで囲まれた部分は完全に無視され、画面上には一切出力されません。
複数行コメントの書き方
段落全体や複数の見出し、リスト、コードブロックなどをまとめて非表示にしたい場合は、開始行に <!--、終了行に --> を配置します。
<!--
### 一時的に非表示にしたいセクション
- 下書き項目1
- 下書き項目2
後で推敲してから公開する予定の文章をここにストックしておきます。
```javascript
console.log("未完成のコード");
```
-->
ここから公開用の本文が始まります。
ブラウザでの表示結果:
ここから公開用の本文が始まります。
このように、Markdown要素(見出し、箇条書き、コードブロック)が含まれていても、<!-- から --> までのすべての内容が丸ごと非表示になります。
文中のインラインコメント(行の途中にメモを挟む)
文中の特定単語の直後や文末に、インラインでメモを挟み込むことも可能です。
今年の目標売上は1億円<!-- 役員会での確定数値を確認すること -->を達成する見込みです。
ブラウザでの表示結果:
今年の目標売上は1億円を達成する見込みです。
文章の前後がつながって表示されるため、編集者同士の校正メモや推敲時の検討メモとして便利に使えます。
2. 発展テクニック:リンク定義記法ハック([//]: #)
「HTMLコメントだとWebサイト公開時にソースコード(HTML)にメモが残ってしまうのが嫌だ」という場合に広く使われているのが、Markdownの「リンク参照定義」を悪用(ハック)したコメント手法です。
リンク定義ハックの仕組み
Markdownには、長いURLを文末にまとめて定義する「参照リンク(Reference-style Link)」という機能があります。
[Google][1] を開く
[1]: https://www.google.com "Google検索"
Markdownパーサーの仕様上、「本文中から一度も参照(呼び出し)されていないリンク定義は、HTMLへの変換時に完全に破棄される(HTMLタグとしても出力されない)」という性質があります。
この仕様を利用して、リンクの識別子に //(プログラミングのコメント記号に見立てた文字列)を指定し、URL部分にダミーの文字列を記述するのがリンク定義ハックです。
代表的な書き方パターン
よく使われる記法には以下のバリエーションがあります。
[//]: # (ここにコメント内容を記述します)
[//]: # "ダブルクォーテーションで囲むパターン"
[//]: # 'シングルクォーテーションで囲むパターン'
[//]: <> (不等号を使ったパターン。VS Code等でURLハイライトされにくい)
[comment]: <> (識別子をわかりやすくcommentにしたパターン)
最も推奨される書き方:
[//]: # (コメント内容) または [//]: <> (コメント内容) が世界中のエンジニアコミュニティ(GitHub / Stack Overflow等)でデファクトスタンダードとして使われています。
リンク定義ハックで複数行コメントを書く方法
リンク定義ハックで複数行のコメントを残す場合は、括弧内で改行するか、行ごとに [//]: # を記述します。
[//]: # (
ここに複数行の
コメントやメモを
記述できます
)
または:
[//]: # (1行目のコメント)
[//]: # (2行目のコメント)
[//]: # (3行目のコメント)
HTMLコメント vs リンク定義ハック 徹底比較
どちらを使うべきか迷ったときは、以下の違いを参考に選んでください。
| 項目 | HTMLコメント(<!-- -->) |
リンク定義ハック([//]: # (...)) |
|---|---|---|
| 画面表示(レンダリング) | 非表示(表示されない) | 非表示(表示されない) |
| HTMLソース(DOM)への出力 | 出力される(<!-- --> が残る) |
完全に出力されない(消滅する) |
| Markdown標準仕様との適合 | 完全準拠(公式サポート) | 非公式(仕様の副作用を利用) |
| エディタのシンタックス強調 | 多くのエディタで灰色に色分けされる | エディタによってはリンク色に誤認識される |
| キーボードショートカット | Ctrl + / 等で一発挿入可能 |
手動入力が必要 |
| おすすめの用途 | 日々の執筆、一時的な文章退避、README | Web公開記事、静的サイト、完全な秘匿メモ |
3. 主要エディタ・プラットフォーム別対応状況&ショートカット
執筆環境によってコメントのレンダリング挙動や便利な機能が異なります。主要なツールでの対応状況を検証しました。
| 環境・ツール | HTMLコメント | リンクハック | ショートカットキー | 特徴・独自仕様 |
|---|---|---|---|---|
| VS Code | ⭕ 完全非表示 | ⭕ 完全非表示 | Ctrl + /(Mac: Cmd + /) |
選択範囲を一発で <!-- --> 化。プレビューでも非表示 |
| GitHub (README/Issue/PR) |
⭕ 完全非表示 | ⭕ 完全非表示 | Ctrl + /(Mac: Cmd + /) |
Markdown差分(Diff)では確認可能。プレビューでは非表示 |
| Obsidian | ⭕ 完全非表示 | ⭕ 完全非表示 | Ctrl + /(Mac: Cmd + /) |
独自記法 %%コメント%% にも対応(後述) |
| Notion | ❌ 文字として表示 | ❌ 文字として表示 | – | Notionは標準Markdown非対応。独自コメント機能を使用 |
| Qiita | ⭕ 完全非表示 | ⭕ 完全非表示 | Ctrl + /(Mac: Cmd + /) |
HTMLソースには <!-- --> が残るため機密メモ厳禁 |
| Zenn | ⭕ 完全非表示 | ⭕ 完全非表示 | Ctrl + /(Mac: Cmd + /) |
GitHub連携での執筆時も同様に非表示処理される |
| Typora | ⭕ 完全非表示 | ⭕ 完全非表示 | Ctrl + Shift + / |
リアルタイムWYSIWYGエディタ。編集時のみ薄く表示 |
VS Code(Visual Studio Code)でのコメントアウト操作
VS CodeはMarkdownファイルのコメントアウト操作が最も洗練されています。
- 1行コメントアウト: コメントにしたい行にカーソルを置き、
Ctrl + /(MacはCmd + /)を押すと、即座に<!-- 行の内容 -->に変換されます。もう一度押すと解除(アンコメント)されます。 - 複数行ブロックコメントアウト: 複数行をマウスやキーボードで範囲選択し、
Shift + Alt + A(MacはShift + Option + A)を押すと、選択範囲全体が<!-- ... -->で囲まれます。 - おすすめ拡張機能: 「Markdown All in One」を導入すると、キーボードショートカットや目次自動生成とともにコメント管理が非常にスムーズになります。
Obsidianの独自コメント記法(%%)
人気ナレッジベースアプリ「Obsidian」では、標準のHTMLコメントに加えて、Obsidian独自のパーセント記法 %% がサポートされています。
%% これはObsidian専用のインラインコメントです %%
%%
ここはObsidian専用の
複数行コメントブロックです。
ライブプレビューでも読書ビューでも非表示になります。
%%
⚠️ Obsidian独自記法の注意点
%% 記法はObsidian内部では非常に便利ですが、GitHubやQiita、VS Code等の他環境にファイルを持っていくとそのままテキストとして画面に表示されてしまいます。他のツールとファイルを共有・公開する可能性がある場合は、標準の <!-- --> を使うことを強く推奨します。
Notionでコメントアウト・非表示を実現する代替策
NotionはMarkdownテキストをペーストした際にリッチブロックへと自動変換する仕組みを採用しているため、<!-- --> や [//]: # を記述してもそのままプレーンテキストの文字として画面に残ってしまいます。
Notion内で画面に出したくないメモを残したい場合は、以下の代替機能を利用してください:
- Notion標準の「コメント機能」を使う: テキストを選択してポップアップから「コメント」を追加するか、
Ctrl + Shift + M(MacはCmd + Shift + M)を押す。サイドバーにスレッド形式でメモが残せます。 - 「トグルリスト(Toggle)」に隠す:
/toggleと入力してトグルを作成し、その中にメモを収納して折りたたんでおく。 - 「コールアウト(Callout)」をグレーアウト:
/calloutで背景をグレーにして「執筆用メモ」と明記しておく。
4. 【超重要】セキュリティと公開時の注意点(HTMLソース流出リスク)
Markdownのコメントアウトを使用する上で、最も注意しなければならないのが「情報の漏洩(情報流出リスク)」です。
🚨 「画面上は見えない」≠「完全に消えている」
HTMLコメント(<!-- -->)で書かれた内容は、ブラウザの描画画面(レンダリング結果)には表示されませんが、ブラウザで「右クリック → ページのソースを表示」したり、F12キーの開発者ツール(Elementsタブ)を開くと、誰でも簡単に閲覧できます。
コメントに絶対に書いてはいけないNG情報
ブログ記事、Webサイト、GitHubの公開リポジトリ(パブリックリポジトリ)にアップロードするMarkdownファイルには、以下の情報を絶対にコメントとして残さないでください。
- 認証情報・機密データ: パスワード、APIキー、アクセストークン、秘密鍵、データベース接続文字列
- 個人情報・社内情報: 社員や顧客の氏名・電話番号・メールアドレス、社内限定URL、非公開サーバーのIPアドレス
- 未公開のビジネス情報: リリース前の新機能情報、未発表の価格設定、競合他社に関する内部評価
- 感情的なメモや愚痴: 「この仕様は意味不明」「クライアントの要望で仕方なく追加」といった制作時の裏話や愚痴
静的サイトジェネレーター(SSG)での挙動
Hugo、Jekyll、Gatsby、Astro、Next.js(Contentlayer等)などの静的サイトジェネレーターを使ってMarkdownからWebサイトをビルドしている場合、パーサーの設定によって挙動が分かれます:
- HTMLコメントがそのまま本番HTMLに出力される設定: デフォルトの多くはこの挙動です。ビルド後のHTMLファイルに
<!-- メモ -->がそのまま残ります。 - HTMLコメントをビルド時に自動除去(Strip)する設定: HTMLミニファイア(HTML Minifier)やパーサーオプション(例: GoldmarkのHTML破棄設定)を有効にしている場合、本番HTMLからは自動削除されます。
確実性を求める場合や、設定に依存したくない場合は、「公開用ファイルからはコメントそのものを削除する」か、前述の「リンク定義ハック([//]: #)」を採用してください。
Gitコミット履歴に残るリスク
「公開前にコメント行を削除したから安心」と思っていても、Gitのコミット履歴(Commit Log)には過去に記述したコメントがそのまま残ります。
GitHubでリポジトリをパブリック(全体公開)にした場合、コミットログを遡れば過去のコメントを誰でも閲覧できてしまいます。一度でも機密情報を書き込んでコミットしてしまった場合は、Git履歴の書き換え(git filter-branch や BFG Repo-Cleaner 等)が必要になるため注意しましょう。
5. 【コピペで使える】実践テンプレート&活用シーン
日常のドキュメント作成や開発現場ですぐに役立つ、実用的なコメントテンプレート集を用意しました。
テンプレート1:執筆用アウトラインとTODO管理
記事の冒頭にTODOリストや構成案をメモしておき、執筆完了したものからチェックしていくパターンです。
<!--
【執筆前TODO & 構成メモ】
- [x] 導入文の作成(想定読者:Markdown初心者〜中級者)
- [x] HTMLコメントの書き方解説
- [ ] エディタ比較表の画像作成と差し替え
- [ ] 参考URLのリンクチェック
ターゲットKW:markdown コメント / 狙いPV:月間5,000PV
-->
# 記事タイトル
ここに本文を書き進めていきます...
テンプレート2:チーム向け執筆ガイドライン・テンプレート
共同編集するドキュメントや社内Wiki、OSSのREADMEテンプレートに執筆ルールを埋め込んでおくパターンです。
# 機能名仕様書
<!--
【執筆ガイドライン】
1. 各機能の概要は200文字以内で簡潔にまとめてください。
2. APIエンドポイントを記載する際は、必ずリクエスト・レスポンス例を併記してください。
3. 未確定の仕様は [未確定] プレフィックスを付けて記述してください。
-->
## 1. 機能概要
ここに機能の概要を記述します。
テンプレート3:一時的な下書き・推敲用ストック
「文章を削るか迷っているが、後で復活させるかもしれない」という段落をキープしておくパターンです。
Markdownは非常に軽量で扱いやすいフォーマットです。
<!--
【推敲メモ(削除候補)】
以前のバージョンでは以下のような複雑な設定が必要でしたが、
最新版では自動認識されるようになったため説明を省略。
要望が多ければ後日復活させる。
-->
続いて、具体的なインストール手順について見ていきましょう。
6. コメントアウトが崩れる・表示されてしまう原因と対処法
「コメントアウトしたはずなのに、プレビューに文字が表示されてしまう」「コメント以降の文章がすべて消えてしまった」というトラブルの主な原因と解決策です。
原因1:コメント内にハイフンが連続している(–)
HTMLの仕様上、コメントの内部に --(ハイフン2つ連続)を含めると、パーサーが終了タグと誤認して構文エラーを引き起こす場合があります。
<!-- ❌ エラーになりやすい例:ハイフンの連続 -->
<!-- ------------- ここからセクション ------------- -->
<!-- ⭕ 推奨される例:イコールやアスタリスクを使う -->
<!-- ============= ここからセクション ============= -->
<!-- ************* ここからセクション ************* -->
原因2:全角文字(記号やスペース)が混ざっている
<!-- や --> のように感嘆符や不等号、ハイフンが全角になっていると、Markdownパーサーはコメントタグとして認識せず、通常の文字列として画面に出力してしまいます。必ず半角英数記号で入力してください。
原因3:閉じタグ(–>)の書き忘れ
<!-- で開始した後に --> で閉じるのを忘れると、ファイルの末尾までのすべての文章がコメントとみなされ、画面から丸ごと消滅してしまいます。必ず開始と終了が対になっているか確認しましょう。
原因4:コードブロックの内部にコメントを書いている
バッククォート3つ(```)で囲まれたコードブロックの中に <!-- --> を書いても、HTMLコメントとしては解釈されず、プログラムコードの文字列としてそのまま表示されます。
```html
<!-- コードブロックの中では、この行自体が画面に表示されます -->
<div class="container"></div>
```
コードブロック全体を非表示にしたい場合は、コードブロックの外側を <!-- と --> で囲んでください。
7. よくある質問(FAQ)
Q1. 行頭に「#」や「//」を書いてもコメントアウトになりませんか?
A. コメントにはなりません。 Markdownで行頭に # を書くと「見出し1(H1)」として解釈されます。また、行頭に // を書いた場合は単なる「スラッシュが2つ並んだ通常テキスト」として画面にそのまま出力されます。コメントアウトしたい場合は必ず <!-- --> または [//]: # () を使用してください。
Q2. VS Codeで複数行を一括コメントアウトするショートカットは?
A. 複数行を選択して Shift + Alt + A(Macは Shift + Option + A)を押します。 行単位で1行ずつコメント化したい場合は Ctrl + /(Macは Cmd + /)でも可能です。
Q3. QiitaやZennでコメントアウトしたら読者にバレますか?
A. ブラウザの画面上は見えませんが、ソースコードを確認されると読まれます。 QiitaやZennのWeb画面で右クリックして「ページのソースを表示」すると、HTMLコメントタグの中に書かれた文字が見えてしまいます。読者に見られたくない社外秘やパスワードは絶対に書かないようにしてください。
Q4. HTMLコメントの中にMarkdown記法(太字やリスト)を書いても大丈夫?
A. まったく問題ありません。 コメントタグの内部にあるMarkdown記法はHTML変換時にすべて無視されるため、自由に記述して構いません。執筆用のアウトラインや箇条書きメモをそのまま残しておく用途に最適です。
まとめ|Markdownコメントをマスターして快適な執筆環境を作ろう
Markdownには専用のコメント記法はありませんが、HTMLコメント(<!-- -->)やリンク定義ハック([//]: # ())を上手に使い分けることで、効率的で美しいドキュメント管理が実現できます。
📝 Markdownコメント 活用の3大原則
- 基本は
<!-- -->を活用: 世界中のエディタ・プラットフォームで確実に非表示にできる標準記法 - ソース完全秘匿なら
[//]: # (): Web公開時にHTMLソースにも残したくない場合はリンク定義ハックを使う - 機密情報・パスワードは絶対に書かない: 「画面非表示=安全」と過信せず、公開前には不要なメモを整理する
自分用のTODO管理やチームでのドキュメント共有に、ぜひ本記事のテクニックを取り入れてみてください!
📚 あわせて読みたいMarkdown関連記事
- 【コピペで使える】Markdown記法一覧・チートシート|基本の書き方から応用・早見表まで完全網羅
- 【コピペで使える】Markdown注釈・脚注の書き方完全ガイド|構文ルール・複数行・ツール対応・チートシートまで徹底解説
- 【コピペで使える】Markdownリンクの書き方完全ガイド|ページ内リンク・別タブ・相対パス・画像リンクまで網羅
- 【コピペで使える】Markdown表(テーブル)の書き方完全ガイド|配置揃え・セル結合・改行・便利ツールまで徹底解説
- 【コピペで使える】Markdown箇条書き・リストの書き方完全ガイド|インデント階層化・番号付き・段落やコードの挿入まで徹底解説
- Markdownコードブロックの書き方完全ガイド|シンタックスハイライト・言語一覧
- Markdownの引用記法完全ガイド!複数行・ネスト(入れ子)・引用内リストまで徹底解説
- Markdownで折りたたみ(トグル・アコーディオン)を作る方法|details・summaryタグの使い方と空行ルール