【问题标题】:How to escape liquid template tags?如何转义液体模板标签?
【发布时间】:2011-03-26 11:12:16
【问题描述】:

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

【问题讨论】:

标签: templates liquid


【解决方案1】:

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

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

会显示

{% this %}

【讨论】:

【解决方案2】:

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

{{ "{% this " }}%}

对于标签,要转义 {{ this }} 使用:

{{ "{{ this " }}}}

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

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

Reference

【讨论】:

  • 太好了,感谢您的参考。由于某种原因,我无法在液体文档中找到它。
  • 你不再需要一个插件来使用{% raw %},对我来说它开箱即用,现在它在the docs
  • 在 jekyll 中是否可以使用 ``` 而不是 {% 来转义代码?
  • 前几个建议对我不起作用,但使用 raw 确实:{% raw %}{{ this }}{% endraw %}
  • 它成功了,谢谢...在这里看一个真实的例子g14n.info/2014/08/moving-from-blogger-to-github-pages/#comments
【解决方案3】:

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

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

{% endraw %}

会产生

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

【讨论】:

    【解决方案4】:

    顺便说一句:

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

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

    转义{{ "{{ this " }}}}使用:

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

    【讨论】:

    • 哈哈哈哈哈哈哈。
    【解决方案5】:

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

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

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

    【讨论】:

      【解决方案6】:

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

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

      【讨论】:

      • 谢谢!用于转义双引号或单引号
      【解决方案7】:

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

      最好的办法是把{% raw %}{% endraw %}放在HTML cmets中:

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

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

      【讨论】:

      • 我喜欢这种方法,因为某种原因,它不会与我的摘录混淆。
      【解决方案8】:

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

      【讨论】:

        猜你喜欢
        • 2011-08-22
        • 2023-03-11
        • 2011-06-25
        • 2017-09-17
        • 2022-06-14
        • 2016-05-04
        • 2011-11-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多