Markdown 转义Jekyll中标记代码块内的双花括号

Markdown 转义Jekyll中标记代码块内的双花括号,markdown,jekyll,liquid,kramdown,Markdown,Jekyll,Liquid,Kramdown,我正在使用Jekyll创建一个文档站点,在其中我试图记录一些包含类似把手的语法的代码。例如{{foo}。问题是,杰基尔使用液体标签,无论我做什么,我的双卷发都会被液体处理器撕掉 顺便说一下,我用kramdown作为降价处理器 以下是我尝试过的一些东西: {% highlight html linenos %} Hello, my name is {{name}}. {% endhighlight %} 这个函数完全删除了{name}}部分,因为它认为它是对一个液体变量的引用 我也试过: {

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

顺便说一下,我用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 %}
在本例中,我试图避开大括号,但结果是斜杠被呈现到页面中

我甚至试过:

{% highlight html linenos %}
  Hello, my name is \{\{name\}\}.
{% endhighlight %}
{% highlight html linenos %}
  Hello, my name is <span>{</span>{name}}.
{% endhighlight %}
{%highlight html linenos%}
你好,我的名字是{{name}。
{%endhighlight%}
诚然,这一次相当愚蠢。在本例中,因为我已经将语法指定为html(它需要是html),所以span标记被呈现到页面中


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

您正在寻找
{%raw%}
标记

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

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

{% raw %}
This is inserted literally: {{foo}}
{% endraw %}
但是,请注意,这不是代码块。您将需要额外的代码格式,以使内容呈现为代码:

{% raw %}
    I'm a code block, because I'm indented by 4 spaces
{% endraw %}

对于jekyll,代码是:

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

{%endraw%} {%endhighlight%}
这在杰基尔中有效:

{%raw%}{{thing}}{%endraw%}

对于将来的参考:使用普通的
{%raw%}
{%endraw%}
只是第二个最好的解决方案,因为如果您在normal github.com上查找标记,就会显示这些解决方案

最好的方法是将
{%raw%}
{%endraw%}
放在HTML注释中:

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

有像{this}和{that}这样的大括号的东西

由于HTML注释,Github将其视为注释。在Github页面中,原始标记将阻止对标记之间的花括号进行解析。

感谢您的添加。最后我做了一些比这更难看的事情,比如
{%raw%}{{foo}{%endraw%}
,所以我来看看你在这里做了什么。这是一个更灵活的解决方案,因为它允许保留代码块及其语法。如果你想看到的代码是
{%raw%}{{…}{%endraw%}
在一篇讨论这个话题的博文中,你可能会发现?@starfry:你应该问的很有趣。。。值得注意的是:上述方法同样适用于胭脂荧光笔。但是,如果使用fenced语法突出显示代码(三个前导的反勾号,如``html…),则raw不起作用。仅供参考,我使用了三个反勾号来证明Jekyll中的代码块可以起作用。它不打算在回复中创建代码块:)