如何在 Markdown 做表格:語法、對齊與儲存格內換行。

Markdown 表格是純文字:儲存格以直線分隔,標題列下方有一列虛線。這裡說明語法、如何對齊欄位,以及如何在儲存格內放入直線或第二行。

需要 macOS 14 或以上版本。閱讀免費;編輯與審閱為一次付費。

快速解答

先寫標題列,再寫一列由虛線組成的分隔列,接著每一列資料各寫一行,儲存格之間用 | 隔開。分隔列中的冒號決定欄位對齊::--- 靠左、:---: 置中、---: 靠右。要在儲存格內顯示直線,寫成 \|;要在儲存格內換行,寫成 <br>。

| Plan | Price | Seats |
|:-----|------:|:-----:|
| Free |    $0 |   1   |
| Team |   $12 |  10   |

·

Markdown 表格的基本語法

表格屬於 GitHub Flavored Markdown(GFM),GitHub、GitLab 與多數 Markdown 應用程式都採用。表格需要三樣東西:

  1. 標題列

    欄位名稱,以直線隔開:| Name | Role |。

  2. 分隔列

    緊接在標題下方的一列虛線,每欄一組:| --- | --- |。儲存格數必須和標題列相同,否則會維持純文字,不會出現表格。

  3. 資料列

    每列一行,儲存格以直線隔開。儲存格不足的列會以空白儲存格補齊,多出來的會被捨棄。表格在第一個空行處結束。

| Name  | Role     |
| ----- | -------- |
| Alice | Designer |
| Bob   | Engineer |

讀者看到的樣子:

NameRole
AliceDesigner
BobEngineer

每行開頭與結尾的直線可以省略,但加上去比較好讀。原始碼中的欄位不必對齊,上面的空白只是給人看的。儲存格可以放粗體、斜體、程式碼、連結與圖片。

Markdown 表格的對齊

在欄位虛線的左端、右端或兩端加上冒號:

分隔列對齊
:---靠左
:---:置中
---:靠右
---預設(多數應用程式為靠左)
| Item   | Qty | Price |
|:-------|:---:|------:|
| Pencil |  12 |  $1.50 |
| Ruler  |   3 |  $4.00 |
ItemQtyPrice
Pencil12$1.50
Ruler3$4.00

對齊套用在整個欄位,標題也包含在內。它只在分隔列設定一次,不是逐格設定。數字建議靠右對齊,位數才會對齊。

儲存格內的直線或第二行

直線代表儲存格結束,所以文字中的直線必須加反斜線。GFM 連行內程式碼裡也要這樣處理:

| Command            | Meaning          |
|--------------------|------------------|
| `a \| b`           | a pipe, in code  |
| Either \| or       | a pipe, in text  |

管線式表格每列只有一行,因此儲存格不能放真正的換行或第二個段落。一般的做法是使用 HTML 標籤 <br>:

| Step  | What to do                          |
|-------|-------------------------------------|
| Build | Run the build.<br>Fix any errors.  |
| Ship  | Tag the release.<br>Push the tag.  |

這個做法在 GitHub 以及多數接受 HTML 的應用程式中,都能做出多行儲存格。Markdown 清單無法用在儲存格內;如果儲存格需要清單,可在簡短的項目之間寫 <br>,或把清單移到表格外面。

寬表格與長文字

Markdown 沒有設定欄寬的方法,也不能合併儲存格;表格怎麼排進畫面,由顯示它的應用程式決定。幾個習慣能讓表格在哪裡都好讀:

  • 儲存格保持簡短,一個詞或一個數字就好。較長的說明放在表格下方的句子裡。
  • 減少欄數。如果有八欄,就把表格轉個方向:欄放項目,列放屬性。
  • 經常編輯的表格,不要為了對齊欄位而在原始碼加空白;改一個儲存格就得重新調整每一行的間距。
  • 需要合併儲存格、跨列或說明文字時,請用 HTML 寫表格。多數 Markdown 應用程式都能顯示單純的 <table>。

Markdown 表格無法顯示的原因

  • 沒有分隔列。是那一列虛線讓文字成為表格。
  • 儲存格數不一致。標題列有三格而分隔列只有兩格,就什麼都不會顯示。
  • 儲存格內有未跳脫的直線,會把儲存格切成兩個。請寫成 \|。
  • 表格中間有空行。表格在那裡結束,其餘變成純文字。
  • 應用程式不支援表格。原始的 Markdown 與 CommonMark 核心都沒有表格;表格來自 GFM,所以精簡的解析器會把直線當成文字顯示。

想在提交前看到結果,請在 Markdown 閱讀器中開啟檔案。DotMD 會把表格渲染出來,閱讀免費。在 DotMD Editor 中,Insert → Table 會在檔案裡放入現成的三欄表格,即時預覽會隨著你輸入重新繪製。

關於 Markdown 表格的常見問題

如何在 Markdown 表格中對齊文字?

在分隔列(標題下方那列虛線)加上冒號。:--- 讓欄位靠左、:---: 置中、---: 靠右。

如何在 Markdown 表格的儲存格中換行?

在想換行的地方寫 <br>。管線式表格每列只有一行,所以真正的換行或儲存格內的 Markdown 清單都行不通。

如何在表格儲存格內輸入直線字元?

用反斜線跳脫:\|。在一般文字與行內程式碼中都需要這樣做。

可以合併 Markdown 表格的儲存格嗎?

不行。GFM 表格沒有 colspan 或 rowspan。需要合併儲存格時,請用 HTML 的 <table>、colspan 與 rowspan 來寫表格。

更多問題