99

这听起来很容易,但是我在文档中的任何地方都找不到。如何在不被引擎处理的情况下写入{% this %}液体模板

4

8 回答 8

132

可以使用raw标签禁用液体处理引擎:

{% raw  %}
{% this %}
{% endraw %}

将显示

{% this %}
于 2012-11-27T10:46:46.800 回答
124

对于未来的搜索者,有一种无需插件即可逃脱的方法,请使用以下代码:

{{ "{% this " }}%}

和标签,逃避{{ this }}使用:

{{ "{{ this " }}}}

还有一个 jekyll 插件,这使它变得更容易:https ://gist.github.com/1020852

jekyll 的原始标签。防止在 {% raw %} 和 {% endraw %} 之间解析文本

参考

于 2011-05-03T07:29:01.003 回答
15

您可以使用 {% raw %} {% endraw %} 转义 Jekyll 帖子中的液体标签,即

{% raw %}
  {% for post in site.posts %}
     {{ post.content }}
  {% endfor %}

{% endraw %}

会产生

  {% for post in site.posts %}
     {{ post.content }}
  {% endfor %}
于 2016-11-07T19:44:15.693 回答
14

顺便提一句:

如果要{{ "{% this " }}%}在 Jekyll 中显示,可以这样编码:

{{ "{{ " }}"{{ "{% this" }} " }}{{ "}}%}

逃避{{ "{{ this " }}}}使用:

{{ "{{ " }}"{{ "{{ this" }} " }}{{ "}}}}
于 2012-10-18T06:59:28.123 回答
10

还有另一种选择:使用 HTML 特殊字符代码将花括号替换为其匹配代码:

  • 将每个{替换为{
  • }替换每个}

有关此解决方案的更多详细信息,请参阅: http ://www.tikalk.com/devops/curly_brances_workaround/

于 2015-12-14T11:40:30.270 回答
4

我找到了一种用花括号显示任何文本的万能方法。您可以将纯文本分配给变量并显示它。

{% assign var = "{{ sth }}" %}
{{ var }}
于 2016-12-30T03:11:04.810 回答
2

正如这里所提到的,plain{% raw %}并且{% endraw %}只是第二好的解决方案,因为如果您在普通的 github.com 上查找 Markdown,则会显示这些解决方案。

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

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

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

于 2019-07-19T23:05:32.933 回答
1

我尝试{% raw %}了一些东西{% endraw %}

{{ "{% this " }}%}。但它们都不起作用。

最后,我的工作答案是 {{ "{%" xxx }} something }}

我的代码:

{{ "{%" }} extends 'xadmin/base_site.html' %}
{{ "{%" }} block nav_form %}
    <h3>{{ "{{" }} title }}</h3>
    {{ "{%" }} for i in context1 %}
        <p>{{ "{{" }} i }}</p>
    {{ "{%" }} endfor %}
{{ "{%" }} endblock %}

结果:

{% extends 'xadmin/base_site.html' %}
{% block nav_form %}
    <h3>{{ title }}</h3>
    {% for i in context1 %}
        <p>{{ i }}</p>
    {% endfor %}
{% endblock %}

于 2019-08-17T16:14:52.373 回答