Markdown 延伸語法:附完整範例的進階指南
全面掌握 Markdown 延伸語法元素,包括表格、程式碼區塊、註腳、工作清單、Emoji 等,每個功能均附帶清晰範例,即學即用。

Markdown 基本語法已經能滿足日常大部分寫作需求,但有時你需要更多功能。延伸語法帶來了表格、註腳、工作清單等強大特性——讓 Markdown 從簡單的格式化工具變成功能齊全的寫作環境。
並非所有 Markdown 處理器都支援全部延伸語法元素。使用之前,請先確認你的工具或平台是否支援你需要的特定功能。好消息是:大多數現代平台——GitHub、GitLab、VS Code 以及主流靜態網站產生器——都支援其中絕大部分延伸功能。
如果你還不太熟悉基本語法,建議先閱讀我們的 Markdown 基本語法指南。
表格

表格讓你可以直接在 Markdown 中將資料組織為列和欄。使用直線符號(|)分隔欄位,使用連字號(-)建立標題列。
| Feature | Basic Syntax | Extended Syntax |
| ------------- | ------------ | --------------- |
| Tables | No | Yes |
| Footnotes | No | Yes |
| Task Lists | No | Yes |
呈現效果如下:
| Feature | Basic Syntax | Extended Syntax |
|---|---|---|
| Tables | No | Yes |
| Footnotes | No | Yes |
| Task Lists | No | Yes |
欄位對齊
透過在標題分隔列加入冒號來控制文字對齊方式:
| Left Aligned | Center Aligned | Right Aligned |
| :----------- | :------------: | ------------: |
| Text | Text | Text |
| More | More | More |
:---靠左對齊(預設):---:置中對齊---:靠右對齊
表格使用技巧
- 原始碼中的直線符號不需要嚴格對齊——對齊只是為了看起來更整齊
- 表格支援行內格式,如粗體、斜體、
程式碼和連結 - 表格不支援在儲存格內使用標題、引用區塊、清單或圖片
- 對於複雜資料,建議使用 HTML 表格
圍欄程式碼區塊

基本語法支援縮排程式碼區塊,但圍欄程式碼區塊更加實用。用三個反引號(```)或三個波浪號(~~~)包裹程式碼,並指定語言以啟用語法高亮。
```python
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n - 1) + fibonacci(n - 2)
print(fibonacci(10))
```
呈現後會顯示完整的語法高亮效果:
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n - 1) + fibonacci(n - 2)
print(fibonacci(10))
支援的語言
大多數渲染器支援數十種語言識別符,以下是最常用的:
Language Identifier
-------------- ----------------
JavaScript javascript / js
Python python / py
TypeScript typescript / ts
HTML html
CSS css
JSON json
Bash bash / sh
SQL sql
Markdown markdown / md
程式碼區塊最佳實踐
- 始終指定語言——這能啟用語法高亮並提升可讀性
- 當不適用任何語言時,使用
text或plaintext - 圍欄程式碼區塊優於縮排程式碼區塊,因為前者支援語法高亮且無需逐行縮排
註腳

註腳可以讓你新增注釋和參考資料,而不會讓正文變得雜亂。註腳內容會顯示在頁面底部。
Markdown was created by John Gruber in 2004.[^1] It has since become
the standard for technical writing.[^2]
[^1]: John Gruber's original Markdown project is documented on
[Daring Fireball](https://daringfireball.net/projects/markdown/).
[^2]: Markdown is used by GitHub, Stack Overflow, Reddit, and
countless other platforms.
呈現後,參考編號會顯示為文字中的上標連結,完整注釋則列在文件底部。
註腳語法規則
- 註腳參考使用
[^identifier]——識別符可以是數字或單詞(不能有空格) - 註腳定義以
[^identifier]:開頭,後面跟內容 - 多段落註腳需要為後續段落新增縮排(四個空格或一個 Tab)
- 註腳定義可以放在文件的任何位置——它們始終會呈現在底部
Here's a footnote with multiple paragraphs.[^note]
[^note]: This is the first paragraph of the footnote.
This is the second paragraph, indented with four spaces.
You can even include code: `console.log("hello")`
標題 ID
自訂標題 ID 可以讓你建立精確的錨點連結,指向文件的特定部分。在標題文字後的大括號中新增 ID。
### My Custom Section {#custom-section}
產生的 HTML 如下:
<h3 id="custom-section">My Custom Section</h3>
連結到標題 ID
一旦標題有了 ID,就可以直接連結到它:
Jump to [My Custom Section](#custom-section).
這在為長文件建立手動目錄時特別有用:
## Contents
- [Introduction](#introduction)
- [Getting Started](#getting-started)
- [Advanced Usage](#advanced-usage)
- [FAQ](#faq)
相容性說明
許多處理器(包括 GitHub)即使沒有 {#id} 語法,也會自動從標題文字產生標題 ID。不過,明確設定 ID 能給你完全的控制權,並確保跨平台行為的一致性。
定義清單
定義清單非常適合詞彙表、常見問題以及任何需要將術語與解釋配對的內容。
Markdown
: A lightweight markup language for creating formatted text
using a plain-text editor.
HTML
: The standard markup language for documents designed to be
displayed in a web browser.
YAML
: A human-readable data serialization language commonly used
for configuration files.
產生的 HTML 如下:
<dl>
<dt>Markdown</dt>
<dd>A lightweight markup language for creating formatted text
using a plain-text editor.</dd>
<dt>HTML</dt>
<dd>The standard markup language for documents designed to be
displayed in a web browser.</dd>
</dl>
多個定義
一個術語可以有多個定義:
Markdown
: A lightweight markup language.
: A tool used by developers and writers worldwide.
相容性說明
定義清單並非所有處理器都支援。GitHub Flavored Markdown 不支援定義清單,但許多靜態網站產生器和文件工具支援。
刪除線
刪除線會在文字上顯示一條水平線,表示已刪除或過時的內容。用雙波浪號(~~)包裹文字。
The project deadline is ~~Friday~~ Monday.
~~Old information~~ has been replaced with updated content.
呈現效果如下:
The project deadline is Friday Monday.
HTML 輸出:
<p>The project deadline is <del>Friday</del> Monday.</p>
刪除線獲得了廣泛支援——它是 GitHub Flavored Markdown(GFM)的一部分,在大多數現代平台上都能正常運作。
工作清單

工作清單(也稱核取方塊或待辦清單)可以建立互動式檢查清單。使用 - [ ] 表示未完成項目,- [x] 表示已完成項目。
- [x] Research extended syntax features
- [x] Write first draft
- [x] Add code examples for each section
- [ ] Create cover image
- [ ] Proofread and edit
- [ ] Publish the article
呈現效果如下:
- Research extended syntax features
- Write first draft
- Add code examples for each section
- Create cover image
- Proofread and edit
- Publish the article
工作清單的應用場景
工作清單在以下場景中特別受歡迎:
- GitHub Issue 和 Pull Request——追蹤工作項目的進度
- 專案文件——列出流程中的步驟
- 會議記錄——記錄待辦事項及其狀態
在 GitHub 等平台上,這些核取方塊是可互動的——你可以在呈現的檢視中直接點擊來切換狀態。
Emoji 表情
在 Markdown 文件中新增 Emoji 有兩種方式。
複製貼上
最簡單的方法——從任何來源複製一個 Emoji,直接貼上到文字中:
That's a great idea! 🎉 Let's ship it! 🚀
這在任何地方都能使用,因為 Emoji 是標準的 Unicode 字元。
短代碼
一些平台支援 Emoji 短代碼——用冒號包裹的關鍵詞:
:smile: :rocket: :thumbsup: :warning: :heavy_check_mark:
常用短代碼包括:
Shortcode Emoji
--------------------- -----
:smile: 😄
:rocket: 🚀
:thumbsup: 👍
:warning: ⚠️
:heavy_check_mark: ✔️
:x: ❌
:fire: 🔥
:star: ⭐
相容性說明
Emoji 短代碼在不同平台之間存在差異。GitHub、Slack 和 Discord 各自支援不同的短代碼集。複製貼上 Emoji 在所有平台通用,是跨平台文件的更安全選擇。
高亮
高亮透過彩色背景使關鍵詞或短語更加醒目。用雙等號(==)包裹文字。
This is ==critically important== information.
產生的 HTML 如下:
<p>This is <mark>critically important</mark> information.</p>
HTML 替代方案
如果你的 Markdown 處理器不支援 == 語法,可以直接使用 HTML 的 <mark> 標籤:
This is <mark>critically important</mark> information.
兩種方式產生相同的效果——高亮文字從周圍內容中突出顯示。
相容性說明
==highlight== 語法並未獲得廣泛支援。它在某些處理器中可用,但在 GitHub Flavored Markdown 中不可用。如果相容性很重要,請使用 <mark> HTML 標籤。
下標與上標
這些元素對於科學記號、數學運算式和化學公式至關重要。
下標
使用單波浪號(~)包裹下標文字:
The chemical formula for water is H~2~O.
Carbon dioxide is CO~2~.
呈現效果為:H2O 和 CO2。
HTML 等效寫法:
<p>The chemical formula for water is H<sub>2</sub>O.</p>
上標
使用插入號(^)包裹上標文字:
The equation is E = mc^2^.
This is the 3^rd^ edition.
呈現效果為:E = mc2 和 3rd 版。
HTML 等效寫法:
<p>The equation is E = mc<sup>2</sup>.</p>
HTML 替代方案
如果你的處理器不支援 ~ 和 ^ 語法,可以直接使用 HTML 標籤:
H<sub>2</sub>O is water.
E = mc<sup>2</sup> is Einstein's famous equation.
這種 HTML 方式幾乎在所有 Markdown 渲染器中都能正常運作。
自動 URL 連結
大多數 Markdown 處理器會自動將原始 URL 轉換為可點擊的連結,無需任何特殊語法:
Visit https://example.com for more information.
即使不使用 [text](url) 語法,這也會呈現為可點擊的連結。
停用自動連結
有時你希望將 URL 顯示為純文字而不使其可點擊。用反引號包裹它,將其呈現為行內程式碼:
`https://example.com`
這會將 URL 顯示為程式碼而非可點擊的連結——在解釋 URL 模式而非連結到目標時很有用。
何時使用明確連結
雖然自動連結很方便,但明確連結語法能給你更多控制權:
<!-- Automatic: shows raw URL -->
https://example.com
<!-- Explicit: shows custom text -->
[Visit our website](https://example.com)
當你需要描述性的錨定文字時,使用明確連結——這對可讀性和 SEO 都更好。
速查表

以下是所有延伸語法元素的一覽表:
Element Syntax Support
------------------- ------------------------- --------
Table | Col | Col | Wide
Fenced Code Block ``` code ``` Wide
Footnote [^1] / [^1]: text Moderate
Heading ID ### Heading {#id} Moderate
Definition List Term / : Definition Limited
Strikethrough ~~text~~ Wide
Task List - [x] / - [ ] Wide
Emoji (shortcode) :emoji_name: Varies
Highlight ==text== Limited
Subscript H~2~O Limited
Superscript X^2^ Limited
Auto URL Link https://... Wide
開始使用延伸語法
現在你已經了解了每個主要的延伸語法元素,以下是將它們付諸實踐的方法:
-
確認你的平台:驗證你的 Markdown 處理器支援哪些功能。GitHub、VS Code 和大多數靜態網站產生器都能很好地處理廣泛支援的元素。
-
使用 HTML 替代方案:對於支援有限的功能(高亮、下標、上標),HTML 標籤替代方案幾乎在所有地方都能使用。
-
用實際內容練習:試著在下一個 README 中新增表格,在下一篇部落格文章中使用註腳,或在下一個專案計畫中使用工作清單。
-
放心轉換:當你的文件準備好分享時,將 Markdown 轉換為 PDF 獲取支援 LaTeX 數學和表格的列印就緒輸出,匯出為 HTML 用於網頁發佈,或生成 Word 文件 供利益相關者審閱——所有延伸語法元素都包含在內。
掌握了基本語法和這些延伸功能,你現在擁有了完整的 Markdown 工具包。如果你剛接觸 Markdown,可以從什麼是 Markdown 了解基本概念。無論你在寫什麼——文件、部落格文章、技術規格還是專案計畫——Markdown 都能滿足你的需求。