如何在 Markdown 做表格:語法、對齊與儲存格內換行。
Markdown 表格是純文字:儲存格以直線分隔,標題列下方有一列虛線。這裡說明語法、如何對齊欄位,以及如何在儲存格內放入直線或第二行。
需要 macOS 14 或以上版本。閱讀免費;編輯與審閱為一次付費。
快速解答
先寫標題列,再寫一列由虛線組成的分隔列,接著每一列資料各寫一行,儲存格之間用 | 隔開。分隔列中的冒號決定欄位對齊::--- 靠左、:---: 置中、---: 靠右。要在儲存格內顯示直線,寫成 \|;要在儲存格內換行,寫成 <br>。
| Plan | Price | Seats |
|:-----|------:|:-----:|
| Free | $0 | 1 |
| Team | $12 | 10 |
·
Markdown 表格的基本語法
表格屬於 GitHub Flavored Markdown(GFM),GitHub、GitLab 與多數 Markdown 應用程式都採用。表格需要三樣東西:
-
標題列
欄位名稱,以直線隔開:
| Name | Role |。 -
分隔列
緊接在標題下方的一列虛線,每欄一組:
| --- | --- |。儲存格數必須和標題列相同,否則會維持純文字,不會出現表格。 -
資料列
每列一行,儲存格以直線隔開。儲存格不足的列會以空白儲存格補齊,多出來的會被捨棄。表格在第一個空行處結束。
| Name | Role |
| ----- | -------- |
| Alice | Designer |
| Bob | Engineer |
讀者看到的樣子:
| Name | Role |
|---|---|
| Alice | Designer |
| Bob | Engineer |
每行開頭與結尾的直線可以省略,但加上去比較好讀。原始碼中的欄位不必對齊,上面的空白只是給人看的。儲存格可以放粗體、斜體、程式碼、連結與圖片。
Markdown 表格的對齊
在欄位虛線的左端、右端或兩端加上冒號:
| 分隔列 | 對齊 |
|---|---|
:--- | 靠左 |
:---: | 置中 |
---: | 靠右 |
--- | 預設(多數應用程式為靠左) |
| Item | Qty | Price |
|:-------|:---:|------:|
| Pencil | 12 | $1.50 |
| Ruler | 3 | $4.00 |
| Item | Qty | Price |
|---|---|---|
| Pencil | 12 | $1.50 |
| Ruler | 3 | $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 來寫表格。