【问题标题】:How to render triple backticks as inline code block in Markdown?如何在 Markdown 中将三个反引号呈现为内联代码块?
【发布时间】:2015-10-19 22:01:03
【问题描述】:

我正在 GitHub 上使用 Markdown 编写有关 Markdown 的教程,我想编写 ``` 但呈现为像 this 这样的内联代码块。

【问题讨论】:

  • 那么答案是什么?我试过````,`````````,``` 但似乎没有任何效果,(即使第三个似乎在这里工作)
  • 其实单词前后一个反引号就足够了。你真的在 Github 上的文件中写了那个 markdown 吗?文件的扩展名是什么?你如何看待它(在 Github 上,其他一些工具)?
  • "单词前后各加一个反引号":所以你建议使用`````。这有一个奇怪的效果。它呈现 4 个普通反引号(即不在代码块中),而第 5 个反引号充当开始反引号,并且所有以下文本都在代码块内,直到稍后找到另一个反引号。该文件是.md。我在 GitHub 和呈现 GFM 的 MDwiki 上查看它。

标签: github markdown backticks


【解决方案1】:

Syntax Rules 对此非常清楚:

要在代码范围内包含文字反引号字符,您可以使用 多个反引号作为开始和结束分隔符:

``There is a literal backtick (`) here.``

这将产生:

<p><code>There is a literal backtick (`) here.</code></p>

围绕代码跨度的反引号分隔符可能包含空格 -- 一个在开盘后,一个在收盘前。这允许您放置 代码跨度开头或结尾的文字反引号字符:

A single backtick in a code span: `` ` ``

A backtick-delimited string in a code span: `` `foo` ``

将产生:

<p>A single backtick in a code span: <code>`</code></p>

<p>A backtick-delimited string in a code span: <code>`foo`</code></p>

规则没有提到但在参考实现中起作用的一件事是,开始和结束反引号分隔符只需要与代码跨度中的反引号数量不同。因此,如果您在一个代码跨度中有两个或多个连续的反引号,那么您可以用一个反引号来打开和一个反引号来关闭代码跨度。诀窍是在代码跨度以反引号开头或结尾时使用空格(如上所述)。

事实上,many implementations 做对了:

foo ` ``` ` bar

变成

<p>foo <code>```</code> bar</p>

显然(正如评论中指出的那样)一些实现特别要求分隔符中的反引号数大于(不仅仅是不同)代码跨度中的反引号数。将它与空格规则结合起来,这应该适用于most implementations

foo ```` ``` ```` bar

但是,如果这两种方法都不适用于您正在使用的 Markdown 实现,我建议向该实现的开发人员提交错误。同时,您可以使用原始 HTML 来强制它工作:

foo <code>```</code> bar

变成

<p>foo <code>```</code> bar</p>

【讨论】:

  • 感谢您提供这个包含有用信息的广泛答案。不幸的是,从您提出的示例中,只有纯 html &lt;p&gt;&lt;code&gt;```&lt;/code&gt;&lt;/p&gt; 在 GitHub 上工作,但在 MDwiki 的 GFM 上 not (因为它不呈现 html),因此我正要提交一个错误。 但是,一遍又一遍地阅读您的答案,我意识到您确实给出了正确的答案,即使没有完全意识到:the opening and closing backtick deliminators only need to be a different number of backticks than those in the code span。因此,我会将其发布为答案,但将您的答案标记为已接受的答案是公平的。
  • 啊,有趣。显然,在您使用的 Markdown 实现中,分隔符中的反引号数需要 大于 代码跨度中的反引号数。我没有想到某些实现可能包含这个附加限制(大多数不包含)。我'''更新我的答案以包括这一点。
【解决方案2】:

Waylan's answer 为我指出了正确的方向:

开始和结束反引号分隔符只需要与代码跨度中的反引号数量不同

所以我发现使用 4 个反引号 作为开始和结束分隔符可以解决问题:

所以,这个: ```` ``` ````

呈现为:```

【讨论】:

    【解决方案3】:

    查看this page,看起来可以通过在每个三重反引号前面加上`r ''` 来呈现RMarkdown/Knitr 的元代码(块代码)。

    因此,在您可能希望最终呈现如何设置代码块的示例的 RMarkdown 文档中,您可以键入以下内容(注意 4 空格缩进以将其呈现为代码):

        `r ''````{r mychunk, echo=TRUE, eval=TRUE}
        1+1
        `r ''````
    

    输出将是

    ```{r mychunk, echo=TRUE, eval=TRUE}
    1+1
    ```
    

    在您的文档(PDF、HTML 等)中。注意它没有运行,只是打印。

    【讨论】:

      猜你喜欢
      • 2015-10-27
      • 2022-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-09
      • 1970-01-01
      • 2016-11-30
      相关资源
      最近更新 更多