努贾克独特的过滤器

时间:2019-04-10 15:52:09

标签: nunjucks gitbook


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不支持“唯一”过滤器。)

1 个答案:

答案 0 :(得分:0)

您可以通过Custom filter

扩展Nunjucks
const 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);