Markdown 高亮標記
在寫讀書筆記或者程式碼審查意見的時候,經常需要把某段文字「畫重點」——就像用熒光筆在紙上劃一道。HTML 裡有現成的 <mark> 標籤,但在 Markdown 裡,高亮標記(highlight / mark)屬於擴展語法,不是所有平臺都支援。今天就把怎麼用、在哪能用、不支援怎麼辦,一次講清楚。
什麼是 Markdown 高亮標記
高亮標記就是在文字後面加一層背景色(通常是黃色),讓它看起來像是被熒光筆劃過一樣。效果類似這樣:
這段話裡有一個 ==重點內容== 被高亮了渲染後,「重點內容」三個字會顯示黃色背景。在 HTML 裡,這對應 <mark> 元素,表示「因為相關性而被標記/高亮的文字」。
需要明確一點:高亮不是 Markdown 標準語法的一部分。原始的 Markdown 語法說明和 CommonMark 規範裡都沒有定義高亮語法,它是各擴展實現自己加的 。所以你會看到有的平臺支援、有的不支援,後面會詳細說。
雙等號語法 ==highlight==
基本寫法
最常見的高亮語法是用雙等號把文字包起來:
這個功能在 ==v2.0 版本== 中已經修復了渲染效果是「v2.0 版本」顯示為黃色高亮背景。語法很簡單,跟 Markdown 加粗 用 **、Markdown 斜體 用 * 是一個套路,只是換成了 == 。
高亮中包含其他格式
高亮的文字裡可以同時用其他 Markdown 語法:
這個 API 已經 ==**廢棄**==,請使用新版本這裡「廢棄」既是高亮又是加粗。渲染的時候會同時顯示黃色背景和粗體字。
也可以嵌套連結:
詳見 ==[官方文件](https://example.com)== 中的說明多個高亮
一篇文章裡可以有多處高亮:
==第一點==:系統架構需要最佳化
==第二點==:資料庫查詢效率偏低
==第三點==:快取策略需要調整連續多行高亮
每行獨立加 ==:
==2024年Q1:完成架構重構==
==2024年Q2:上線新快取系統==
==2024年Q3:效能最佳化達標==HTML mark 標籤:全平臺通用方案
說實話,==highlight== 語法雖然好用,但相容性是個大問題。如果目標平臺不支援雙等號語法,最靠譜的替代方案是直接用 HTML 的 <mark> 標籤:
這個功能在 <mark>v2.0 版本</mark> 中已經修復了因為絕大多數 Markdown 解析器都會保留 HTML 標籤,所以這個寫法幾乎在所有平臺都能正常渲染 。缺點是寫起來比 == 麻煩一些,但至少能保證效果。
我之前在 Obsidian 裡用 ==highlight== 寫了一堆讀書筆記,高亮標註做得特別漂亮。後來想把其中一段貼到 GitHub issue 裡,結果推上去一看——== 原樣顯示,完全沒渲染。從那以後我養成了一個習慣:要跨平臺發布的內容,統一用 <mark> 標籤,只在 Obsidian 和 Typora 這類確定支援 == 的編輯器裡才用雙等號語法。
mark 標籤的語義
<mark> 不只是視覺效果,它有明確的語義——表示「因為相關性而被標記的文字」。典型的使用場景包括:
- 搜尋結果中高亮匹配的關鍵字
- 引用文中高亮原作者沒有強調的部分
- 待辦清單中標記進度
如果你的高亮純粹是為了視覺強調,用 Markdown 加粗 可能更合適。<mark> 適合的是「這段文字在當前上下文中有特殊相關性」的場景 。
自訂高亮顏色
預設的黃色背景不一定能滿足所有需求。比如在深色主題下,黃色高亮可能太刺眼;或者你想用不同顏色區分不同類型的高亮。
用 CSS 改變顏色
<mark> 標籤支援 inline style:
<mark style="background-color: #ff6b6b;">紅色高亮</mark>
<mark style="background-color: #51cf66;">綠色高亮</mark>
<mark style="background-color: #339af0;">藍色高亮</mark>這在大多數支援 HTML 的 Markdown 平臺上都能工作。但要注意,有些平臺(比如 GitHub)會過濾掉 inline style,這種情況下自訂顏色就沒轍了。
在 Typora 中自訂
Typora 支援透過 CSS 主題檔案修改高亮顏色。在主題 CSS 檔案中新增:
mark {
background-color: #fff3bf;
padding: 0.1em 0.2em;
border-radius: 2px;
}我之前在 Typora 裡用這個方法把高亮顏色改成了淡藍色,因為預設的黃色在我用的暗色主題下對比度太低,幾乎看不出來。改了之後在編輯和匯出 PDF 的時候效果都很好。
各平臺相容性對比
這是大家最關心的部分。我整理了主流平臺對兩種高亮方式的支援情況:
| 平臺 | ==highlight== | HTML <mark> | 備註 |
|---|---|---|---|
| Obsidian | ✅ | ✅ | 原生支援雙等號語法 |
| Typora | ✅ | ✅ | 原生支援,可自訂顏色 |
| Pandoc | ✅ | ✅ | 需啟用 highlight 擴展 |
| GitLab | ✅ | ✅ | GLFM 原生支援 |
| Jupyter Notebook | ✅ | ✅ | 透過擴展支援 |
| GitHub | ❌ | ✅ | 不支援 ==,需用 <mark> |
| VS Code 預覽 | ❌ | ✅ | 不支援 == |
| CommonMark | ❌ | ✅ | 標準不包含高亮語法 |
| Stack Overflow | ❌ | ❌ | 兩種都不支援 |
| Notion | ❌ | ❌ | 使用自己的高亮語法 |
幾個關鍵點:
- GitHub 是最常見的「不支援雙等號」平臺,在 GitHub 上寫 README、issue、PR 描述只能用
<mark> - Obsidian 和 Typora 是最友好的,雙等號語法和 HTML 標籤都支援
- GitLab 原生支援,這點比 GitHub 強
- Stack Overflow 完全不支援高亮,連
<mark>都會被過濾掉
什麼時候用高亮 vs 加粗 vs 其他格式
高亮、加粗、Markdown 底線、Markdown 刪除線 都能起到「強調」的作用,但語義不同:
| 格式 | 語法 | 語義 | 適用場景 |
|---|---|---|---|
| 高亮 | ==text== / <mark> | 當前上下文相關 | 讀書筆記、程式碼審查意見 |
| 加粗 | **text** | 重要性強調 | 標題、關鍵字、警告 |
| 刪除線 | ~~text~~ | 不再準確/已完成 | 廢棄內容、任務完成 |
| 底線 | <u>text</u> | 專有名詞、拼寫提示 | 術語標註 |
簡單來說:想讓讀者「注意這段在當前語境下很重要」用高亮,想讓讀者「這個詞本身很重要」用加粗。
實際使用場景
讀書筆記
作者認為 ==技術債務就像金融債務==,短期借款可以加速開發,但如果不及時償還,利息會越滾越多,最終拖垮整個專案。在讀書筆記裡用高亮標記原文關鍵句,配合自己的批註,複習的時候一眼就能看到重點。
會議紀要
## 專案進度同步
- 前端重構已完成 80%,預計 ==本週五== 上線測試環境
- 後端 API 變更需要 ==協調行動端團隊== 同步修改
- 資料庫遷移方案 ==已獲 DBA 審批==用高亮標記待辦事項的截止日期和關鍵決策,掃一眼就知道重點。
Changelog / 更新日誌
## v3.2.0 更新內容
- ==新增:== 支援暗色主題切換
- ==修復:== 檔案上傳偶現 500 錯誤
- ==破壞性變更:== 移除了 `legacyMode` 配置項用高亮標記變更類型,讓讀者快速定位自己關心的更新。
常見問題
GitHub 上怎麼高亮文字?
GitHub 不支援 ==highlight== 語法。替代方案是直接用 HTML:
這是 <mark>高亮文字</mark>如果 GitHub 把 <mark> 也過濾了(極端情況),可以用加粗 **text** 或者用程式碼反引號 `text` 來模擬視覺區分。
高亮語法是 Markdown 標準的一部分嗎?
不是。高亮屬於擴展語法,不在 CommonMark 規範和原始 Markdown 語法說明中 。它是各解析器(Obsidian、Typora、Pandoc 等)自行實現的擴展功能。
==highlight== 和 有區別嗎?
渲染結果一樣,==text== 在支援的解析器中會被轉換為 <mark>text</mark>。區別只是語法糖——== 寫起來方便,但相容性差;<mark> 寫起來囉嗦,但幾乎全平臺通用。
Notion 裡能用 Markdown 高亮嗎?
Notion 有自己的高亮功能(/highlight 命令或者選中文字後設定背景色),但不支援 Markdown 的 ==highlight== 語法,也不支援 <mark> 標籤。需要用 Notion 自己的方式操作。
參考來源
: Markdown Guide — Extended Syntax: Stack Overflow — Text highlight in markdown: MDN Web Docs — HTML Mark Element: Obsidian 官方文件 — Formatting and syntax: GitLab Docs — GitLab Flavored Markdown (GLFM)