nunjucks的过滤器有哪些
时间: 2023-02-08 08:17:59 浏览: 94
Nunjucks支持多种过滤器,主要有以下几种:
1. `abs`:返回数字的绝对值
2. `batch`:将数组分组
3. `capitalize`:将字符串的第一个字符转换为大写
4. `date`:格式化日期时间
5. `default`:当值为null或undefined时返回默认值
6. `divided_by`:返回两数相除的结果
7. `escape`:对字符串进行转义
8. `first`:返回数组的第一个元素
9. `groupby`:将数组分组
10. `indent`: 为字符串添加缩进
11. `join`:将数组中的元素用指定字符连接起来
12. `json`: 将数据转为 json 字符串
13. `last`:返回数组的最后一个元素
14. `length`:返回数组或字符串的长度
15. `lower`:将字符串转换为小写
16. `map`:映射数组中的元素
17. `markdown`: 将文本转换为 markdown
18. `nl2br`: 将换行符转换为 html 换行标签
19. `plus`: 返回两数相加的结果
20. `replace`:将字符串中的某个字符串替换为另一个字符串
21. `round`: 对数字进行四舍五入
22. `slice`:返回数组或字符串的子序列
23. `sort`:对数组进行排序
24. `striptags`: 删除 HTML 和 XML
相关问题
nunjucks有没有字符串转json的过滤器
Nunjucks是一个JavaScript模板引擎,它本身并不提供将字符串转换为JSON对象的过滤器。 但你可以在使用nunjucks之前转换成JSON对象, 也可以使用 JavaScript 内置的 JSON.parse() 方法将字符串转换为 JSON 对象, 在 Nunjucks 模板中使用。
例如:
```
let json_obj = JSON.parse(json_string)
```
最后, 你可以将这个json_obj作为变量传入模板中使用
另外,你也可以自己定义过滤器来做这件事
```
env.addFilter('json_parse', function(str) {
return JSON.parse(str);
});
```
使用
```
{{ json_string | json_parse }}
```
koa如何配合nunjucks使用
以下是koa如何配合nunjucks使用的步骤:
1. 安装nunjucks模块
要使用nunjucks模板引擎,需要先安装该模块。可以使用npm进行安装,命令如下:
```
npm install nunjucks --save
```
2. 引入nunjucks模块
在koa应用中使用nunjucks模板引擎,需要将其引入,并创建一个nunjucks环境。
```
const nunjucks = require('nunjucks');
const path = require('path');
// 创建nunjucks环境
const env = nunjucks.configure(path.join(__dirname, 'views'), {
autoescape: true,
express: app
});
```
其中,配置项`autoescape`用于开启HTML字符转义,避免XSS攻击。而`express: app`则用于兼容koa和nunjucks中的语法。
3. 设置koa的视图引擎
在koa应用中,需要将nunjucks设置为视图引擎,并指定模板文件的后缀名。使用koa-views中间件可以轻松完成这个操作。
```
const views = require('koa-views');
app.use(views(path.join(__dirname, 'views'), {
extension: 'njk',
map: { njk: 'nunjucks' },
}));
```
这里使用`koa-views`中间件,将`views`目录设置为模板文件的根目录。然后指定`extension`为`.njk`,而`map`属性则将后缀名`njk`映射到`nunjucks`引擎。
4. 渲染模板
通过上述步骤,koa已经准备好使用nunjucks模板引擎了。在路由中,可以使用`ctx.render`方法来渲染模板。
```
router.get('/', async (ctx, next) => {
await ctx.render('index', { title: 'Koa & Nunjucks' });
});
```
其中,`index`表示模板文件名,`{ title: 'Koa & Nunjucks' }`则是模板变量。
5. 在模板中使用变量
在模板文件中,可以使用`{{ title }}`这样的语法来输出变量。
```
<!DOCTYPE html>
<html>
<head>
<title>{{ title }}</title>
</head>
<body>
<h1>{{ title }}</h1>
</body>
</html>
```
通过这样的方式,可以轻松地将koa和nunjucks结合使用来进行视图渲染。