简体   繁体   中英

Nunjucks nl2br does not exist?

I need a filter like the Jinja "nl2br", but in the Nunjucks. In the documentation are a mention ( https://mozilla.github.io/nunjucks/templating.html ), but I searched it in the nunjucks code ( https://github.com/mozilla/nunjucks/blob/master/src/filters.js ) and it does not exist.

Somebody knows how to solve it with a equivalent filter or another solution? Or I need to create the filter?

Nunjucks has built-in escaping. If you set {autoescape: true} when settings up Nunjucks, then you don't need to do anything. Otherwise, you can use the escape filter.

If you just want to escape newlines, then do this:

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

and use the newly created nl2br filter.

Note: env is your Nunjucks environment.

There is now a nl2br filter in nunjucks (see the documentation )

So i've yout got some unsafe text, but you still want to have new lines changed to <br/> tags, you can use the following example for the docs

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

which will output

foo<br />\nbar

and be displayed as

foo
bar

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM