【问题标题】:Nunjucks nl2br does not exist?Nunjucks nl2br 不存在?
【发布时间】:2016-05-15 17:33:39
【问题描述】:

我需要一个像 Jinja "nl2br" 这样的过滤器,但在 Nunjucks 中。 在文档中有提及(https://mozilla.github.io/nunjucks/templating.html),但我在 nunjucks 代码(https://github.com/mozilla/nunjucks/blob/master/src/filters.js)中搜索它,它不存在。

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

【问题讨论】:

    标签: javascript node.js nl2br nunjucks


    【解决方案1】:

    Nunjucks 具有内置转义功能。如果你在设置 Nunjucks 时设置了{autoescape: true},那么你不需要做任何事情。否则,您可以使用escape 过滤器。

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

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

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

    注意:env 是您的 Nunjucks 环境。

    【讨论】:

    • 我已经将 autoscape 设置为 true,但不起作用。只有逃生过滤器也不起作用。我的解决方案是创建过滤器并将其与类似的保险箱一起使用:{{description|nl2br|safe}}
    • @RenathoDeCarliRosa 这是个坏主意,因为它允许将任何 html/脚本插入到 html 中
    【解决方案2】:

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

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

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

    哪个会输出

    foo<br />\nbar
    

    并显示为

    foo
    酒吧

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-09
      • 2014-09-10
      相关资源
      最近更新 更多