竖线既是表格语法,也是人们在 shell 命令、TypeScript 联合类型、正则表达式和普通文本里真实需要的字符。如果单元格里出现未转义的 |,渲染器可能会把它当成下一列的边界。
转义字面量竖线
在竖线前面立刻加一个反斜杠:
| Expression | Meaning |
| :--- | :--- |
| `ready \| waiting` | Either state is accepted |
| `string \| null` | A TypeScript union |
有些渲染器会先处理代码片段,再处理表格分隔符;另一些仍然要求把代码里的竖线也转义。为了兼容性,直接转义通常更稳妥。如果生成器接受的是原始单元格值,应该在输出 Markdown 时自动加转义,而不是修改编辑器里显示的值。
理解反斜杠输入
如果原始值已经包含 \|,一个粗糙的格式化器每次运行都可能再加一个反斜杠。可靠的流程要区分“编辑中的原始网格值”和“序列化后的 Markdown 值”。编辑原始文本,导出时只转义一次。
这一点在导入已有 Markdown 表格时尤其重要。导入器应该把 Markdown 转义还原成可编辑网格,导出器再把它们重新编码回去。
有意识地处理换行
大多数 Markdown 表格实现都假设一行源码对应一行表格。单元格里的真实换行会直接结束这一行。实际有三种做法:
- 如果不重要,就把换行替换成空格。
- 如果目标平台允许内联 HTML,就使用
<br>。 - 把详细内容移到表格下方,再在单元格里链接过去。
第三种通常更利于可访问性。窄列里塞进大段文字,即使渲染器支持 HTML 换行,在手机上也很难读。
测试目标渲染器
转义规则取决于 Markdown 实现和 HTML 策略。GitHub、静态站点生成器和内部文档平台可能对同一份源码给出不同结果。只要管道符和内联代码是核心内容,就应该在仓库里保留一个最小测试表格。
使用 可视化表格生成器 时,竖线会在导出阶段自动转义,并且可以直接复制结果,而不需要把单元格内容发送到服务器。