I need a filter like the Jinja "nl2br", but in the Nunjucks. In the documentation are a mention (.html), but I searched it in the nunjucks code (.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?
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./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?
Share Improve this question edited Oct 1, 2016 at 0:36 Renatho De Carli Rosa asked Feb 5, 2016 at 16:43 Renatho De Carli RosaRenatho De Carli Rosa 3791 gold badge3 silver badges8 bronze badges2 Answers
Reset to default 6Nunjucks 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