systems:
- name: Fred
country: DE
- name: Wilma
country: US
- name: Pebbles
country: DE
- name: Dino
country: US
---
# Systems
Countries: {{ page.systems | join(",", "country") }}
我正在尝试创建一个GitBook页面,其中包含不包含重复项的项目列表。即我想在我的页面的Nunjucks模板中应用“唯一”过滤器或“独特”过滤器。模板需要处理页面变量(YAML)。上面的模板生成输出:
Countries: DE,US,DE,US
我希望它产生输出
Countries: DE,US
我该如何实现? (鉴于Nunjucks不支持“唯一”过滤器。)
答案 0 :(得分:0)
您可以通过Custom filter
扩展Nunjucksconst nunjucks = require('nunjucks');
const env = new nunjucks.Environment(/* loaders etc... */);
env.addFilter('unique', arr => arr instanceof Array && arr.filter((e, i, arr) => arr.indexOf(e) == i) || arr);
let out = env.renderString(`{{[1, 2, 3, 2] | unique }}`);
console.log(out);