【问题标题】:Unique filter in NunjuckNunjuck 中的独特过滤器
【发布时间】:2019-04-10 15:52:08
【问题描述】:


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

【问题讨论】:

    标签: nunjucks gitbook


    【解决方案1】:

    您可以通过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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-08
      • 2020-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多