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

Posted

技术标签:

【中文标题】如何在降价表的代码语句中转义管道字符?【英文标题】:How to escape a pipe char in a code statement in a markdown table? 【发布时间】:2013-06-23 14:01:42 【问题描述】:

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

这就是我想要的:

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

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

请注意,我已经尝试使用 | html 代码,但它会生成 a |= y;

【问题讨论】:

【参考方案1】:

您可以使用\ 在 GFM 中的表格中转义 |,如下所示:

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

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

【讨论】:

谢谢。这适用于 Github。 Github MarkDown 似乎可以识别表格中的字符串\| 并采取相应的行动。 在 github 中,这需要在第一列中以 | 开头:这有效:``` |一个 | r | ------------|-----| a += x; | r1 | a \|= y; | r2 ``(由于注释 1 行格式规则的格式,抱歉)【参考方案2】:

这在 github markdown 中运行良好:

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

与https://***.com/a/45122039/1426932 非常相似,但在第一列中添加了|(它在 cmets 中渲染得不好,所以我在这里添加一个答案)。

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

【讨论】:

【参考方案3】:

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

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

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

并产生以下输出

或者,您可以将反引号 (`) 替换为 <code></code> 标记,通过保留渲染更好地解决问题

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

生成以下输出

【讨论】:

是的,使用 &lt;code&gt;&lt;/code&gt; 标记工作!非常感谢。 Bitbucket 不允许 &lt;code&gt;-blocks :-/ 还有其他可能吗? 在 GitHub 上,markdown 转义 \| 有效。人们跳到 HTML 的速度太快了,而没有尝试逃避降价。 截至 2019 年 3 月,在 Gitlab Wiki 中,您仍需要在标记代码中使用“&amp;#124;”。 Bitbucket 仍然不支持请参阅bitbucket.org/site/master/issues/17106/…【参考方案4】:

截至 2017 年年中,管道可能会简单地用反斜杠转义,如下所示:\|

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

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

上一个答案:

截至 2017 年 3 月,已接受的答案停止工作,因为 GitHub changed their markdown parser。 使用另一个类似于管道的 unicode 符号似乎是 目前唯一的选择,例如:

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

∣(U+2223,符号除)

⎮(U+23AE,整体扩展)

【讨论】:

在 Gist 和我提交的拉取请求中,接受的答案似乎对我来说在 GitHub 中都能正常工作。

以上是关于如何在降价表的代码语句中转义管道字符?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 hive 查询的准备语句中转义?(问号)?

如何在 Pyspark 的动态列列表中转义列名

如何在 pdo 中转义字符串? [复制]

如何在 onClick 处理程序内的 JavaScript 代码中转义字符串?

如何在 onClick 处理程序内的 JavaScript 代码中转义字符串?

如何在这个混合的 cmd / powershell 代码中转义毒字符?