在 Jekyll 的 Markdown 代码块中转义双花括号

Posted

技术标签:

【中文标题】在 Jekyll 的 Markdown 代码块中转义双花括号【英文标题】:Escaping double curly braces inside a markdown code block in Jekyll 【发布时间】:2014-07-28 22:39:08 【问题描述】:

我正在使用 Jekyll 创建一个文档站点,我在其中尝试记录一些包含类似把手的语法的代码。例如foo。问题是 Jekyll 使用液体标签,无论我做什么,我的双卷发都会被液体处理器撕掉。

顺便说一句,我使用 kramdown 作为降价处理器。

这是我尝试过的:

% highlight html linenos %
  Hello, my name is name.
% endhighlight %

这个完全删除了 name 部分,因为它认为它是对液体变量的引用。

我也试过这个:

% highlight html linenos %
  Hello, my name is \\name\\.
% endhighlight %

在这种情况下,我试图避开花括号,但结果是斜线被渲染到页面中。

我什至试过这个:

% highlight html linenos %
  Hello, my name is <span></span>name.
% endhighlight %

诚然,这个很愚蠢。在这种情况下,因为我已将语法指定为 html(它必须是),所以 span 标签会呈现到页面中。

那么我到底该如何解决这个问题呢?

【问题讨论】:

【参考方案1】:

您正在寻找% raw % 标签。

% raw %
Hello, my name is name.
% endraw %

【讨论】:

如果您想转义的代码是 % raw % ... % endraw %,正如人们在讨论这个主题的博文中可能发现的那样,该怎么办? @starfry:有趣的是你应该问...blog.slaks.net/2013-06-10/jekyll-endraw-in-code【参考方案2】:

您可以使用% raw % 确保内容未被 Jekyll 修改:

% raw %
This is inserted literally: foo
% endraw %

但是,请注意,这不是代码块。您将需要额外的代码格式以使您的内容呈现为代码:

% raw %
    I'm a code block, because I'm indented by 4 spaces
% endraw %
% raw %
```handlebars
I'm a code block that contains handlebars
with highlighting.
```
% endraw %

【讨论】:

感谢您的补充。我最终做了一些比% raw % foo % endraw % 更丑的事情,所以我会看看你在这里做了什么。 这是一个更灵活的解决方案,因为它允许保留代码块及其语法。【参考方案3】:

使用 jekyll 的代码是:

% highlight html%
% raw %
     <h2>  user.name.first | uppercase </h2>
     <p>  user.email </p>
% endraw %
% endhighlight %

【讨论】:

值得注意的是:上述作品,也适用于胭脂荧光笔。但是,如果使用防护语法来突出显示代码(三个前导反引号,如 ```html ...),则 raw 不起作用【参考方案4】:

供将来参考:使用普通的 % raw %% endraw % 只是第二好的解决方案,因为如果您在普通的 github.com 上查找 Markdown,就会显示这些解决方案。

最好的办法是把% raw %% endraw %放在HTML cmets中:

<!-- % raw % -->
something with curlky brackets like  this  and  that 
<!-- % endraw % -->

由于 HTML cmets,Github 将其视为评论。在 Github 页面中,原始标签将阻止解析标签之间的大括号。

【讨论】:

【参考方案5】:

这适用于 jekyll

%raw%thing%endraw%

【讨论】:

仅供参考,我包含了三重反引号来证明 Jekyll 中的代码块可以工作。并不是要在回复中创建代码块 :)

以上是关于在 Jekyll 的 Markdown 代码块中转义双花括号的主要内容,如果未能解决你的问题,请参考以下文章

Jekyll Markdown 处理器类似于 GitHub 风格的 Markdown

为具有嵌套标签的自定义标签编写 jekyll 插件时出现问题

Jekyll - 在高亮代码块中设置部分代码样式

Jekyll 中看起来像终端的代码块

使用 Pygments 在 Jekyll 中突出显示围栏代码块

jekyll 高亮标签打破了降价语法