105

我正在使用 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 标签会呈现到页面中。

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

4

5 回答 5

207

您正在寻找{% raw %}标签。

{% raw %}
Hello, my name is {{name}}.
{% endraw %}
于 2014-06-08T02:44:54.477 回答
40

您可以使用{% 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 %}
于 2016-06-02T21:50:00.973 回答
22

使用 jekyll 的代码是:

{% highlight html%}
{% raw %}
     <h2> {{ user.name.first | uppercase }}</h2>
     <p> {{ user.email }}</p>
{% endraw %}
{% endhighlight %}
于 2016-07-19T14:53:58.710 回答
7

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

最好的方法是在 HTML 注释中添加{% raw %}和:{% endraw %}

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

由于 HTML 注释,它被 Github 视为注释。在 Github 页面中,原始标签将阻止解析标签之间的大括号。

于 2019-07-19T23:00:35.637 回答
4

这适用于jekyll

{%raw%}{{thing}}{%endraw%}
于 2018-08-03T08:20:14.037 回答