DevToy

Markdown 表格

在 Markdown 表格儲存格中跳脫直線與換行

透過處理字面量直線、反斜線、HTML 換行、程式碼片段和渲染器差異,避免 Markdown 欄位錯亂。

發佈於 2026年7月11日 · 更新於 2026年7月11日

直線既是表格語法,也是人們在 shell 命令、TypeScript 聯集型別、正則表示式和一般文字裡真實需要的字元。如果儲存格裡出現未跳脫的 |,渲染器可能會把它當成下一欄的邊界。

跳脫字面量直線

在直線前面立刻加上一個反斜線:

| Expression | Meaning |
| :--- | :--- |
| `ready \| waiting` | Either state is accepted |
| `string \| null` | A TypeScript union |

有些渲染器會先處理程式碼區塊,再處理表格分隔符;另一些仍然要求把程式碼裡的直線也跳脫。為了兼容性,直接跳脫通常更穩妥。如果產生器接受的是原始儲存格值,應該在輸出 Markdown 時自動加入跳脫,而不是修改編輯器裡顯示的值。

理解反斜線輸入

如果原始值已經包含 \|,一個粗糙的格式化器每次執行都可能再加一個反斜線。可靠的流程要區分「編輯中的原始網格值」和「序列化後的 Markdown 值」。編輯原始文字,輸出時只跳脫一次。

這一點在匯入既有 Markdown 表格時尤其重要。匯入器應該把 Markdown 跳脫還原成可編輯網格,匯出器再把它們重新編碼回去。

有意識地處理換行

大多數 Markdown 表格實作都假設一行原始碼對應一行表格。儲存格裡的真正換行會直接結束這一行。實務上有三種做法:

  1. 如果不重要,就把換行替換成空格。
  2. 如果目標平台允許 inline HTML,就使用 <br>
  3. 把詳細內容移到表格下方,再在儲存格裡連回去。

第三種通常更利於可及性。窄欄裡塞進大段文字,即使渲染器支援 HTML 換行,在手機上也很難讀。

測試目標渲染器

跳脫規則取決於 Markdown 實作和 HTML 政策。GitHub、靜態網站產生器和內部文件平台可能對同一份原始碼給出不同結果。只要直線和 inline code 是核心內容,就應該在倉庫裡保留一個最小測試表格。

使用 可視化表格產生器 時,直線會在輸出階段自動跳脫,而且可以直接複製結果,而不需要把儲存格內容送到伺服器。

相關指南