首页 文章

在Jekyll的markdown代码块中转换双花括号

提问于
浏览
62

我正在使用Jekyll创建一个文档站点,其中我试图记录一些包含句柄式语法的代码 . 例如 {{foo}} . 问题是Jekyll使用液体标签,无论我做什么,我的双层玻璃都会被液体处理器撕掉 .

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

这是我尝试过的东西:

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

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

我也试过这个:

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

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

我甚至试过这个:

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

不可否认,这个非常愚蠢 . 在这种情况下,因为我已将语法指定为html(它需要),所以span标记将呈现到页面中 .

那么我可以如何解决这个问题呢?

4 回答

  • 133

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

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

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

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

    但请注意,这是 not a code block . 您需要额外的代码格式才能使您的内容呈现为代码:

    {% 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 %}

  • 21

    使用jekyll代码是:

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

    这适用于 jekyll

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

相关问题