【发布时间】:2013-01-08 13:04:14
【问题描述】:
当在 mako 模板中输出一些 UGC ($user.text) 时,我想使用 mako 过滤器 'h' 来清理内容,然后添加一些 <br> 标记来代替换行符,所以会有一些格式化。
但是,mako 似乎忽略了我应用“h”过滤器的顺序,现在我的 <br> 标签被转义而不是呈现。
这是我的添加过滤器:
<%
def nl2br(str):
return str.replace("\n", "<br/>")
%>
这是我的测试字符串:
hello,
My name is
James
以下带有过滤器的 mako 标签:
${user.text | n,h,nl2br}
${user.text | n,nl2br,h}
... 生成相同的 html 并转义了 <br> 标签:
hello,
<br/>
<br/>My name is
<br/>
<br/>James
我能够找到让<br> 标签通过而不转义的唯一方法是完全删除“h”过滤器,如下所示:
${user.text | n,nl2br}
但这违背了清理user.text字段的目的。
如何让“h”过滤器触发,然后添加 <br> 标签?
我是否缺少缓冲区的内容?
【问题讨论】:
标签: mako