Экранирование двойных фигурных скобок внутри блока кода markdown в Jekyll


Я использую Jekyll для создания сайта документации, где я пытаюсь документировать некоторый код, который содержит синтаксис, подобный рулю. Например {{foo}}. Проблема в том, что Джекилл использует жидкие теги, и независимо от того, что я делаю, мои двойные кудри вырываются жидким процессором.

кстати, я использую kramdown в качестве процессора markdown.

вот что я пробовал:

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

4 ответа:

Вы ищите {% raw %} тег.

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

можно использовать {% raw %} чтобы убедиться, что содержание не изменяется Джекил:

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

С Джекилом код:

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

это работает в Джекил:

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