如何逃避液体模板标签?

时间:2010-08-06 17:25:52

标签: templates liquid

这听起来很简单,但我无法在文档的任何地方找到它。如何在liquid模板中编写{% this %},而不由引擎处理?

8 个答案:

答案 0 :(得分:110)

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

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

将显示

{% this %}

答案 1 :(得分:108)

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

{{ "{% this " }}%}

和对于代码,要转义{{ this }}使用:

{{ "{{ this " }}}}

还有一个jekyll插件可以让它变得更容易:https://gist.github.com/1020852

  

jekyll的原始标签。保持液体免于解析{%raw%}之间的文本   和{%endraw%}

Reference

答案 2 :(得分:13)

顺便说一句:

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

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

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

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

答案 3 :(得分:9)

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

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

{% endraw %}

将产生

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

{% endraw %}

答案 4 :(得分:7)

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

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

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

答案 5 :(得分:2)

我找到了一种无所不能的方式来显示带花括号的任何文本。您可以将纯文本分配给变量,然后显示它。

{% assign var = "{{ sth }}" %}
{{ var }}

答案 6 :(得分:0)

也如here所述,简单的{% raw %}{% endraw %}只是次优的解决方案,因为如果您在普通的github.com上查看Markdown,就会显示出来。

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

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

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

答案 7 :(得分:0)

我尝试了{% 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 %}