如何在markdown表中的代码语句中转义管道char?

Mar*_*han 83 markdown escaping pipe github

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

这就是我想要的:

      a     |  r  
------------|-----
 `a += x;`  |  r1
 `a |= y;`  |  r2
Run Code Online (Sandbox Code Playgroud)

问题是第二行的代码语句中的垂直条被解释为列分隔符.然后表格渲染看起来很丑陋.我怎么能避免这种情况?

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

nul*_*ken 117

截至2017年3月,使用转义管道要容易得多:\|请参阅其他答案.

如果你删除反引号(`),使用|黑客工作

      a     |  r  
------------|-----
 `a += x;`  |  r1
 a |= y;  |  r2
Run Code Online (Sandbox Code Playgroud)

并产生以下输出

在此输入图像描述

或者,您可以使用标记替换反引号(`),<code></code>通过保留渲染来更好地修复问题

      a     |  r  
------------|-----
 `a += x;`  |  r1
<code>a &#124;= y;</code>  |  r2
Run Code Online (Sandbox Code Playgroud)

生成以下输出

在此输入图像描述

  • 是的,使用`<code> </ code>`标记工作!非常感谢你. (4认同)
  • 在 GitHub 上,降价转义 `\|` 有效。人们在没有试图逃避降价的情况下跳到 HTML 的速度太快了。 (2认同)

Jan*_*sch 14

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

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

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

上一个答案:

截至2017年3月,接受的答案停止工作,因为GitHub更改了降价分析器.使用另一个类似于管道的unicode符号似乎是目前唯一的选择,例如:

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

|(U + 2223,符号划分)

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

  • 接受的答案似乎在GitHub中对我很好,无论是在Gist还是在我提交的pull请求中. (2认同)

Iir*_*ayn 7

您可以|使用\类似的方法在GFM中的表中进行转义:

      a     |  r  
------------|-----
 `a += x;`  |  r1
 `a \|= y;` |  r2
Run Code Online (Sandbox Code Playgroud)

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