我正在使用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标记会被渲染到页面中。
那么我可以如何解决这个问题?
答案 0 :(得分:140)
您正在寻找{% raw %}
代码。
{% raw %}
Hello, my name is {{name}}.
{% endraw %}
答案 1 :(得分:23)
您可以使用{% 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 %}
答案 2 :(得分:15)
使用jekyll代码是:
{% highlight html%}
{% raw %}
<h2> {{ user.name.first | uppercase }}</h2>
<p> {{ user.email }}</p>
{% endraw %}
{% endhighlight %}
答案 3 :(得分:1)
这在 jekyll 中有效:
{%raw%}{{thing}}{%endraw%}
答案 4 :(得分:0)
供以后参考:使用普通的{% raw %}
和{% endraw %}
只是第二好的解决方案,因为如果您在普通的github.com上查看Markdown,则会显示这些解决方案。
最好的方法是将{% raw %}
和{% endraw %}
放在HTML注释中:
<!-- {% raw %} -->
something with curlky brackets like { this } and { that }
<!-- {% endraw %} -->
由于HTML注释,Github将其视为注释。在Github页面中,原始标签将阻止解析标签之间的大括号。