如何在Markdown表的代码语句中转义管道字符?


100

在GitHub上,我想构建一个包含Markdown中的代码段的表。除非我在反引号(即)字符之间放置了管道字符(即|),否则它工作正常。

这是我想要的:

      a     |  r  
------------|-----
 `a += x;`  |  r1
 `a |= y;`  |  r2

问题在于第二行代码语句中的竖线被解释为列定界符。然后表渲染看起来很丑陋。我该如何避免呢?

请注意,我已经尝试使用|HTML代码,但是会产生a |= y;

Answers:


143

截至2017年3月,使用转义管道更加容易:\|请参阅其他答案。

如果删除反引号(`),则使用|hack

      a     |  r  
------------|-----
 `a += x;`  |  r1
 a |= y;  |  r2

并产生以下输出

在此处输入图片说明

另外,您可以使用标记替换反引号(`),以<code></code>通过保留渲染更好地解决问题

      a     |  r  
------------|-----
 `a += x;`  |  r1
<code>a &#124;= y;</code>  |  r2

产生以下输出

在此处输入图片说明


4
是的,使用<code></code>标记工作!非常感谢你。
Marc de Verdelhan 2013年

Bitbucket不允许<code>-blocks:-/还有其他可能性吗?
Sergej

2
在GitHub上,降价转义\|有效。人们跳到HTML的速度太快而没有尝试逃脱markdown。
jnm2

截至2019年3月,在Gitlab Wiki中,您仍需要&#124;在标记代码中使用“ ”。
knb


19

截至2017年中,管道可以简单地以反斜线转义,如下所示: \|

这适用于反引号的内部和外部。

现在也可以再次使用HTML代码,但只能在反引号之外使用。

先前的答案:

截至2017年3月,已接受的答案停止工作,因为GitHub更改了其markdown解析器。现在,使用另一个类似于管道的unicode符号似乎是唯一的选择,例如:

ǀ(U + 01C0,点击拉丁字母)

∣(U + 2223,符号分隔)

⎮(U + 23AE,集成扩展)


2
在GitHub中,无论是在Gist还是在我提交的拉取请求中,都可以接受的答案对我来说很好用。
Iiridayn

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.