内置的过滤器

Nunjucks已经实现了jinja中的大部分过滤器,同时也新增了一些属于自己的过滤器。我们需要为这些过滤器编写文档。下面是一部分过滤器的文档,其他的你可以点击链接查看jinja上的文档。

default(value, default, [boolean])

(简写为 d)

如果value全等于undefined则返回default,否则返回value。如果boolean为true,则会在value为JavaScript中的假值时(比如:false, ""等)返回default

在2.0版本中,这个过滤器的默认表现与以前有所不同。在之前的版本中,它会把boolean的默认值 设置为true,所以传入任何假值都会返回default。在2.0中,默认只有值为undefined时会 返回default。如果你仍旧希望保持原来版本的表现的话,你可以给boolean传入true,或是 直接使用value or default

sort(arr, reverse, caseSens, attr)

用JavaScript中的arr.sort函数排序arr。如果reverse为true,则会返回相反的排序结果。默认状态下排序不会区分大小写,但你可以将caseSens设置为true来让排序区分大小写。我们可以用attr来指定要比较的属性。

striptags (value, [preserve_linebreaks])

类似于jinja中的striptags.如果preserve_linebreaks为false(同时也是默认值),则会移去SGML/XML标签并用一个空格符替换临近的、连续的空白符号。如果preserve_linebreaks为true,则会尝试保留临近的空白符号。如果你希望使用管道操作符进行类似于{{ text | striptags | nl2br }}这样的操作时,你就会需要用到后一种。否则你还是应该使用默认的用法。

dump (object)

在一个对象上调用JSON.stringify,并将结果输出到模板上。这在调试时很有用:{{ foo | dump }}

其他过滤器

原文: https://mozilla.github.io/nunjucks/cn/templating.html