【问题标题】:Output from field of type HTML prints tags verbatim (BOLT-CMS / Twig)HTML 类型字段的输出逐字打印标签 (BOLT-CMS / Twig)
【发布时间】:2018-08-21 17:38:44
【问题描述】:

在 Bolt CMS 中,我有一个这样定义的字段:

contenttypes.yaml

details:    # thats my new content type
  name: (...)
  (...)
  fields:
    (...)
    contentblocks:
      type: block
      label: Content
      fields:
        freetext:
          label: Formatted Text
          fields:
            content:
              type: html
  (...)

然而,现在当我在我的模板中显示这个时......

{% setcontent nameAddr = 'data/name-addr' %}
{% for group in nameAddr.contentblocks %}
  {% if group.block == 'freetext' %}
    {{group.content}}
  {% endif %}
{% endfor %}

...我在页面中得到这样的输出(通过视图源):

<p>a<br />
<br />
b</p>

所以标签以某种方式逐字打印。

(我没有在所见即所得模式下输入标签。)

我有点困惑,因为一切似乎都与文档 (1) (2) 相同。

如果有人可以帮助我,那就太好了。干杯。

【问题讨论】:

    标签: twig bolt-cms twig-filter


    【解决方案1】:
    {{group.content | raw}}
    

    https://twig.symfony.com/doc/2.x/filters/raw.html

    Bolt 使用 Twig 模板引擎。因此,所有默认的树枝 {{ |filters }} 也可以在 Bolt 中使用。其中大部分在 纯 PHP 或 Javascript。可用的过滤器有:abs、batch、 大写,转换编码,日期,日期修改,默认,转义, 首先,格式,加入,json_encode,键,最后,长度,较低,合并, nl2br,number_format,原始,替换,反向,圆形,切片,排序, 拆分,striptags,title,trim,upper,url_encode。

    【讨论】:

    • 没有任何效果,很遗憾。
    • autoescape 没有任何效果,所以我认为答案不应该是“尝试autoescape 或其他”。
    • 已更新,最初我保留了自动转义,因为它可以解决类似的问题,但你是对的。
    【解决方案2】:

    您必须使用raw 过滤器,如:

    {{group.content | raw}}
    

    cf this questionraw 的文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-11
      • 1970-01-01
      • 2018-01-29
      • 2017-09-15
      • 2015-06-11
      • 2017-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多