Nunjucks nl2br不存在?

Ren*_*osa 8 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)并且它不存在.

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

som*_*ody 5

Nunjucks 具有内置的转义功能。如果您{autoescape: true}在设置 Nunjucks 时进行设置,则无需执行任何操作。否则,您可以使用escape过滤器。

如果您只想转义换行符,请执行以下操作:

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

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

注意:env是您的 Nunjucks 环境。


Dav*_*vid 5

nl2brnunjucks现在有一个过滤器(请参阅文档

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

{{ "foo\nbar" | striptags(true) | escape | nl2br }}
Run Code Online (Sandbox Code Playgroud)

这将输出

foo<br />\nbar
Run Code Online (Sandbox Code Playgroud)

并显示为


酒吧