直線既是表格語法,也是人們在 shell 命令、TypeScript 聯集型別、正則表示式和一般文字裡真實需要的字元。如果儲存格裡出現未跳脫的 |,渲染器可能會把它當成下一欄的邊界。
跳脫字面量直線
在直線前面立刻加上一個反斜線:
| Expression | Meaning |
| :--- | :--- |
| `ready \| waiting` | Either state is accepted |
| `string \| null` | A TypeScript union |
有些渲染器會先處理程式碼區塊,再處理表格分隔符;另一些仍然要求把程式碼裡的直線也跳脫。為了兼容性,直接跳脫通常更穩妥。如果產生器接受的是原始儲存格值,應該在輸出 Markdown 時自動加入跳脫,而不是修改編輯器裡顯示的值。
理解反斜線輸入
如果原始值已經包含 \|,一個粗糙的格式化器每次執行都可能再加一個反斜線。可靠的流程要區分「編輯中的原始網格值」和「序列化後的 Markdown 值」。編輯原始文字,輸出時只跳脫一次。
這一點在匯入既有 Markdown 表格時尤其重要。匯入器應該把 Markdown 跳脫還原成可編輯網格,匯出器再把它們重新編碼回去。
有意識地處理換行
大多數 Markdown 表格實作都假設一行原始碼對應一行表格。儲存格裡的真正換行會直接結束這一行。實務上有三種做法:
- 如果不重要,就把換行替換成空格。
- 如果目標平台允許 inline HTML,就使用
<br>。 - 把詳細內容移到表格下方,再在儲存格裡連回去。
第三種通常更利於可及性。窄欄裡塞進大段文字,即使渲染器支援 HTML 換行,在手機上也很難讀。
測試目標渲染器
跳脫規則取決於 Markdown 實作和 HTML 政策。GitHub、靜態網站產生器和內部文件平台可能對同一份原始碼給出不同結果。只要直線和 inline code 是核心內容,就應該在倉庫裡保留一個最小測試表格。
使用 可視化表格產生器 時,直線會在輸出階段自動跳脫,而且可以直接複製結果,而不需要把儲存格內容送到伺服器。