Markdown 中竖线是表格的专用分隔符
示例
| character | Name |
| :--- | --- |
| **`\`** | backslash |
| **`|`** | Pipe ( **see also escaping pipe in tables** ) |
渲染效果:
| character | Name |
|---|---|
\ | backslash |
| **` | `** |
这是 Markdown 表格的一个典型“语法冲突”问题。为什么会显示错误? 在 Markdown 中,|竖线是表格的专用分隔符。
当解析器处理那一行时,即使您把|放到了反引号(代码格式)里,解析器依然会优先把它识别为“表格的列分隔符”。
- 解析器看到第一个
|开头。 - 接着看到
**和`。 - 然后它遇到了您想显示的那个
|。此时解析器直接认为:“第一列到这里就结束了!” - 于是第一列的内容就变成了
**`(一对加粗符号加一个反引号),由于语法不完整,它就可能显示为空白或乱码。
解决方案:
在 Markdown 表格中显示竖线,必须使用反斜杠转义:使用\|代替|。
正确的写法应该是:
| character | Name |
| :--- | --- |
| **`\`** | backslash |
| **`\|`** | Pipe ( **see also escaping pipe in tables** ) |
渲染效果:
| character | Name |
|---|---|
\ | backslash |
| | Pipe ( see also escaping pipe in tables ) |
扩展小知识:
这个规则在普通段落里是不需要的(直接用反引号包住|没问题),但只要在表格里,|就像是表格的“骨架”,必须通过\|告诉解析器:“这只是一个普通字符,不要在这里拆分单元格。”