Markdown 註解:5 種方法完全指南

在編寫 Markdown 文件時,你可能想留一些備註給自己或團隊成員,但又不想讓這些內容出現在最終顯示的結果中。很多開發者搜尋 "comment in markdown" 或 "markdown comment syntax" 時,會發現一個讓人困惑的事實:Markdown 本身沒有原生註解語法

這是因為在 John Gruber 2004 年設計 Markdown 時,他的目標是創造一種「易讀易寫的純文字格式」,註解(comment)並不在這個設計目標內。

不過不用擔心,透過利用 HTML 和 Markdown 自身的語法特性,我們有幾種實用的變通方案。我在 GitHub、GitLab、VS Code 和 Typora 上逐一測試過這些方法,下面把實測結果和使用經驗分享給你。無論你是想了解 markdown comment block(區塊註解)、multiline comment(多行註解),還是想 comment out(註解掉)某段內容,這篇文章都能幫到你。

方法一:HTML 註解(最推薦,相容性最好)

Markdown 支援行內 HTML,所以可以直接使用 HTML 的註解語法:

這是一段正常顯示的文字。

<!-- 這是一條註解,不會在最終結果中顯示 -->

這段文字會正常顯示。

實測結果: 在 GitHub、GitLab、VS Code 預覽、Typora、Hugo、Jekyll 上均完全不可見。註解內容在瀏覽器中透過「檢視原始碼」仍然能看到,但一般讀者不會注意到。

參考:Markdown GuideStack Overflow(140萬+ 瀏覽量)均推薦此方法。

HTML 註解支援多行

<!--
這是一段多行註解。
第一行備註。
第二行備註。
可以寫很多內容。
-->

踩坑經驗

我在實際使用中遇到過一個問題:HTML 註解內不能包含 --。比如 <!-- 這是一段 -- 註解 --> 會導致解析錯誤。這在需要寫命令列參數(如 --verbose)的備註時容易中招。

解決方法:避免在註解中使用連續兩個短橫線,或者用單短橫線替代。

適用場景

  • 在 README 中給協作者留備註
  • 暫時隱藏某段內容但不想刪除
  • 在部落格文章中標記待完善的部分
  • 在 Git 提交資訊模板中新增填寫說明

方法二:引用式連結註解(comments in markdown 的另一種思路)

這個方法利用了 Markdown 引用式連結(reference-style links)的語法特性。當引用的連結標籤沒有被實際使用時,解析器會忽略它:

[//]: # "這是一條註解"

[//]: # (這也是一條註解)

[comment]: # "這同樣是註解"

三種寫法效果一樣,選擇你喜歡的一種就行。

為什麼這能生效?

引用式連結的語法是 [label]: url "title"。當這個 label 沒有被文件中的任何 [label][link] 引用時,渲染器會跳過它。[//]: # 中的 // 確保不會與正常引用衝突,# 作為 URL。這個技巧最早在 Stack Overflow 上被討論,後來被廣泛採用。

實測踩坑

我在 VS Code 的 Markdown 預覽中發現,[comment]: # 有時會渲染為一個不可見的空行,導致段落間距變大。而 [//]: # 的表現更穩定。

另外,在巢狀清單中使用引用式註解時要格外小心。我實測在 GitHub 上,如果註解緊跟在清單項後面且縮排不對,註解內容可能會被顯示出來。

參考:這個方法在 Stack Overflow 高讚回答 中有詳細討論,在 Pandoc 文件 中也有提及。

優缺點

優點: 註解內容連 HTML 原始碼中也不會出現(在支援此方法的平臺上)。

缺點: 並非所有 Markdown 解析器都支援。在 GitHub、MacDown、Pandoc 上可用,但在某些平臺上可能會顯示出來。

方法三:三橫線註解(僅限 GitHub)

GitHub Flavored Markdown 支援一種特殊的註解語法:

<!--- 這是 GitHub 專用註解 --->

這個寫法只在 GitHub 上有效。我實測在 GitLab、VS Code、Typora 上均無法正常運作——註解內容會被直接顯示出來。

如果你只在 GitHub 上使用 Markdown,可以考慮這種方式。但由於相容性太差,我個人不推薦在跨平臺場景中使用。

方法四:用程式碼區塊「註解」(適合 markdown comment out 場景)

如果你想把某段內容「註解掉」(comment out)而不是完全隱藏,可以用程式碼區塊把它標記出來:

```text
TODO: 這裡需要補充更多內容
FIXME: 這段邏輯需要修改

這不算真正的註解——內容會顯示出來,但至少能和正文區分開。適合用來標記待辦事項或團隊協作中的提醒。

## 方法五:折疊區域(適合放補充資訊)

在支援 HTML 擴充的平臺上,可以把內容折疊起來:

```markdown
<details>
<summary>點擊展開備註</summary>

這裡是備註內容,預設是折疊隱藏的。

</details>

實測結果: 在 GitHub、GitLab 上完美支援。在 Typora 中也支援。VS Code 預覽中支援但樣式略有差異。

這個方法適合放一些參考資訊或補充說明,讀者需要時可以主動展開。


各方法相容性對比(實測驗證)

方法GitHubGitLabVS CodeTyporaJekyll/HugoHTML原始碼可見
HTML 註解 <!-- -->
引用式連結 [//]: #⚠️ 待驗證⚠️ 可能產生空行⚠️ 待驗證
三橫線 <!--- --->
程式碼區塊是(可見)
折疊區域 <details>是(可展開)

說明:✅ = 實測完全支援 | ⚠️ = 部分支援或待驗證 | ❌ = 實測不支援。標註「待驗證」的項目建議你在自己的環境中測試確認。


實際使用場景

場景一:團隊協作留備註

## 專案簡介

本專案是一個 Markdown 編輯器。

<!-- @Alice: 這裡的描述需要根據最新版本更新 -->
<!-- 審核日期:2026-05-03 -->

場景二:暫時隱藏內容

## 功能清單

<!-- 以下功能暫未上線,先隱藏 -->

### 即將推出
- 深色模式
- 多語言支援

場景三:部落格文章 SEO 備註

---
title: "Markdown 註解指南"
---

<!-- SEO 備註:主關鍵字 "markdown comment",次關鍵字 "markdown 註解語法" -->
<!-- 內鏈候選:markdown 語法總覽、markdown 程式碼區塊 -->

# Markdown 註解指南

場景四:Git 提交資訊模板

## 變更說明

<!-- 請簡要描述本次變更的目的 -->

## 影響範圍
<!-- 列出受影響的功能模組 -->

場景五:文件模板說明

# 週報模板

## 本週完成
<!-- 在下方列出本週完成的主要工作 -->

## 下週計畫
<!-- 在下方列出下週計畫 -->

行業動態:Markdown 註解正在走向專業化

值得注意的是,Markdown 註解不僅僅是「文件寫作者的變通技巧」,在專業開發領域也在獲得正式地位。

Java 23 的 JEP 467(Markdown Documentation Comments)是一個標誌性進展:從 Java 23 開始,開發者可以在 Javadoc 文件註解中使用 Markdown 語法,替代傳統的 HTML + @ 標籤寫法。這說明 Markdown 在專業開發中的地位在持續提升,「Markdown + 註解」這個組合正在被主流程式語言正式採用。

參考:OpenJDK JEP 467


常見問題

Markdown 有原生的註解語法嗎?

沒有。根據 CommonMark 規範和 John Gruber 的原始定義,Markdown 標準中不包含 comment(註解)語法。所以當你搜尋 "markdown comment" 時,找到的都是變通方案。所有方法都是利用 HTML 或 Markdown 自身語法特性實現的。

哪種註解方法最安全?

HTML 註解 <!-- --> 是最安全的選擇。它在所有主流 Markdown 解析器中都能正常運作,行為一致。來自 Markdown GuideStack Overflow - Comments in Markdown 的社群共識也支援這個結論。如果你只記住一個 markdown comment syntax,就記住 <!-- -->

註解會影響頁面載入速度嗎?

不會。註解內容非常短小,對效能沒有任何可感知的影響。

在 Jupyter Notebook 中怎麼寫註解?

Jupyter 的 Markdown 儲存格支援 HTML,直接使用 <!-- 註解內容 --> 即可。

在 VS Code 中如何快速插入註解?

安裝 "Markdown All in One" 擴充功能後,選取文字按 Ctrl+/(Mac 上 Cmd+/)可以快速切換註解。


總結

需求推薦方法
通用註解(所有平臺)HTML 註解 <!-- -->
註解在 HTML 中也不可見引用式連結 [//]: #
僅在 GitHub 使用三橫線 <!--- --->
標記待辦事項程式碼區塊
可折疊的補充資訊<details> 折疊區域

記住一個原則:不確定用哪種時,選 HTML 註解 <!-- --> 就對了。 它是唯一在所有主流平臺上都可靠運作的方案。


參考來源: