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

在 GitHub 上,我想构建一个包含 Markdown 代码片段的表。除了在反勾字符(即‘)之间放置一个管道字符(即 |)之外,它工作得很好。

这是我想要的:

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

问题是第二行代码语句中的垂直条被解释为列分隔符。然后表渲染看起来非常丑陋。我怎么能避免呢?

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

41704 次浏览

截至2017年3月,使用逃逸管道要容易得多: \|查看其他答案。

如果您删除反勾(`) ,使用 |黑客工程

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

并产生以下输出

enter image description here

或者,您可以使用 <code></code>标记替换反勾(`) ,这样可以通过保留呈现来更好地修复问题

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

生成以下输出

enter image description here

截至2017年中期,管道可能只是使用反斜杠转义,如下所示: \|

这种方法在反向标记内部和外部都有效。

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

回答:

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

Something (U + 01C0,拉丁字母牙科点击)

函数(U + 2223,符号除法)

Something (U + 23 AE,积分扩展)

你可以在 GFM 的表格中使用如下的 \来转义 |:

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

有关示例,请参见 https://github.github.com/gfm/#example-191https://github.com/dotnet/csharplang/pull/743

这种方法在 github 降价时效果很好:

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

非常类似于 https://stackoverflow.com/a/45122039/1426932,但在第一栏中添加了 |(它在评论中显示得不好,所以我在这里添加了一个答案)。

请注意,在表单元格外面,a \|= y;将呈现反斜杠,但在表单元格内部,它不会呈现反斜杠。