如何在降价表的代码语句中转义管道字符?
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 |= y;</code> | r2
生成以下输出
【讨论】:
是的,使用<code></code>
标记工作!非常感谢。
Bitbucket 不允许 <code>
-blocks :-/ 还有其他可能吗?
在 GitHub 上,markdown 转义 \|
有效。人们跳到 HTML 的速度太快了,而没有尝试逃避降价。
截至 2019 年 3 月,在 Gitlab Wiki 中,您仍需要在标记代码中使用“&#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 中都能正常工作。以上是关于如何在降价表的代码语句中转义管道字符?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 onClick 处理程序内的 JavaScript 代码中转义字符串?