Liquid模板:是否有过滤器可将变量渲染为HTML而非纯文本?
解决Liquid模板中转义HTML实体无法渲染的问题
你当前的代码里,变量htmlcontent存的是转义后的HTML实体(比如<对应<),直接输出时Liquid默认不会解析这些实体,所以邮件里只会显示纯文本形式的标签,没法渲染成真正的HTML格式。
要解决这个问题,用Liquid的unescape过滤器就可以,它能把HTML实体转换回对应的原始HTML标签:
{% assign htmlcontent = '<h1>hello</h1><br>' %} {{ htmlcontent | unescape }}
执行这段代码后,输出结果就是<h1>hello</h1><br>,邮件客户端就能正确识别并渲染成HTML格式了。
如果你的Liquid运行环境(比如某些自定义系统)不支持unescape过滤器,也可以自己实现一个简单的替换逻辑,手动替换常用的HTML实体:
{% assign htmlcontent = '<h1>hello</h1><br>' %} {% assign rendered = htmlcontent | replace: '<', '<' | replace: '>', '>' %} {{ rendered }}
内容的提问来源于stack exchange,提问作者markus
相关产品推荐
相关产品推荐

