【发布时间】:2011-03-26 11:12:16
【问题描述】:
这听起来很简单,但是我在文档中的任何地方都找不到。如何在 liquid 模板中写入 {% this %} 而不被引擎处理?
【问题讨论】:
-
你可以随时comment out.
这听起来很简单,但是我在文档中的任何地方都找不到。如何在 liquid 模板中写入 {% this %} 而不被引擎处理?
【问题讨论】:
可以使用raw 标签禁用液体处理引擎:
{% raw %}
{% this %}
{% endraw %}
会显示
{% this %}
【讨论】:
raw标签是一年前在核心引擎中添加的。见github.com/Shopify/liquid/commits/master/lib/liquid/tags/raw.rb
raw 标签是 introduced in Liquid 2.3.0,GitHub Pages 当前使用的是 version 2.5.5。
对于未来的搜索者,有一种无需插件即可逃脱的方法,请使用以下代码:
{{ "{% this " }}%}
对于标签,要转义 {{ this }} 使用:
{{ "{{ this " }}}}
还有一个 jekyll 插件可以让它变得更容易:https://gist.github.com/1020852
jekyll 的原始标签。防止液体在 {% raw %} 之间解析文本 和 {% endraw %}
【讨论】:
{% raw %},对我来说它开箱即用,现在它在the docs中
raw 确实:{% raw %}{{ this }}{% endraw %}。
你可以在 Jekyll 帖子中使用 {% raw %} {% endraw %} 转义液体标签,即
{% raw %}
{% for post in site.posts %}
{{ post.content }}
{% endfor %}
{% endraw %}
会产生
{% for post in site.posts %}
{{ post.content }}
{% endfor %}
【讨论】:
顺便说一句:
如果你想在 Jekyll 中显示{{ "{% this " }}%},你可以这样编码:
{{ "{{ " }}"{{ "{% this" }} " }}{{ "}}%}
转义{{ "{{ this " }}}}使用:
{{ "{{ " }}"{{ "{{ this" }} " }}{{ "}}}}
【讨论】:
还有另一种选择:使用 HTML 特殊字符代码将花括号替换为其匹配代码:
- 将每个 { 替换为 {
- 将每个 } 替换为 }
有关此解决方案的更多详细信息,请参阅: http://www.tikalk.com/devops/curly_brances_workaround/
【讨论】:
我找到了一种用花括号显示任何文本的万能方法。您可以将纯文本分配给变量并显示它。
{% assign var = "{{ sth }}" %}
{{ var }}
【讨论】:
正如提到的here 一样,普通的{% raw %} 和{% endraw %} 只是第二好的解决方案,因为如果您在普通的github.com 上查找Markdown,就会显示这些解决方案。
最好的办法是把{% raw %}和{% endraw %}放在HTML cmets中:
<!-- {% raw %} -->
something with curlky brackets like { this } and { that }
<!-- {% endraw %} -->
由于 HTML cmets,Github 将其视为评论。在 Github 页面中,原始标签将阻止解析标签之间的大括号。
【讨论】:
我尝试了{% 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 %}
【讨论】: