Nunjucks nl2br不存在?

时间:2016-02-05 16:43:25

标签: javascript node.js nl2br nunjucks

我需要像Jinja“nl2br”这样的过滤器,但是在Nunjucks中。 在文档中提到了(https://mozilla.github.io/nunjucks/templating.html),但是我在nunjucks代码(https://github.com/mozilla/nunjucks/blob/master/src/filters.js)中搜索了它并且它不存在。

有人知道如何使用等效过滤器或其他解决方案来解决它吗?或者我需要创建过滤器?

2 个答案:

答案 0 :(得分:3)

Nunjucks已经内置逃脱。如果你在设置Nunjucks时设置{autoescape: true},那么你不需要做任何事情。否则,您可以使用escape过滤器。

如果您只是想逃避换行,请执行以下操作:

env.addFilter('nl2br', function(str) {
    return str.replace(/\r|\n|\r\n/g, '<br />')
})

并使用新创建的nl2br过滤器。

注意:env是您的Nunjucks环境。

答案 1 :(得分:0)

nunjucks中现在有一个nl2br过滤器(请参阅documentation

所以我收到了一些不安全的文本,但是您仍然希望将新行更改为<br/>标签,您可以将以下示例用于文档

{{ "foo\nbar" | striptags(true) | escape | nl2br }}

将输出

foo<br />\nbar

并显示为

foo
酒吧