HTML 类型字段的输出逐字打印标签 (BOLT-CMS / Twig)
Posted
技术标签:
【中文标题】HTML 类型字段的输出逐字打印标签 (BOLT-CMS / Twig)【英文标题】:Output from field of type HTML prints tags verbatim (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) 相同。
如果有人可以帮助我,那就太好了。干杯。
【问题讨论】:
【参考方案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 question 和 raw
的文档。
【讨论】:
以上是关于HTML 类型字段的输出逐字打印标签 (BOLT-CMS / Twig)的主要内容,如果未能解决你的问题,请参考以下文章