循环遍历Jekyll中的单个_data文件并对结果进行分组

时间:2018-02-04 04:47:30

标签: jekyll

设置:目前我有一个脚本可以读取谷歌电子表格,并将结果写入我的GitHub页面网站上的_data文件夹中的* .yaml文件。

典型结果如下:

- ip: 192.168.0.1
  mac: 'a4:13:4e:5e:2c:c0'
  hostname: XWR-3100V1 Wireless Router
  vendor: Luxul
  dns_name: XWR-3100.lan
  mdns_name: test
  smb_name: test
  smb_domain: test
  comments: test
  type: Router
- ip: 192.168.0.4
  mac: 'b0:6e:bf:9c:11:00'
  hostname: Toshiba eStudio 4505ac
  vendor: ''
  dns_name: ''
  mdns_name: ''
  smb_name: ''
  smb_domain: ''
  comments: ''
  type: Printer

从那里开始,我创建了一个页面,显示一个循环显示信息并显示所有设备的表格。

我无法弄清楚以下内容的语法:

查看数据并识别所有不同类型(路由器,媒体播放器,打印机)等。

使用Type作为组标题创建表,然后在标题下面列出与该类型匹配的记录,然后转到下一个类型,依此类推。

这是否可以使用单个yaml文件,或者我是否需要生成另一个文件,该文件只包含第一个文件中找到的类型列表?

谢谢!

{% assign devices = site.data.network %}
{% for ip in devices %} //not sure what this really means
{{ip.ip}} | {{ip.mac}} ...etc.
{% endfor %}

为简洁起见,我排除了表格标签。

1 个答案:

答案 0 :(得分:1)

使用group_by过滤器:

{% assign net = site.data.network | group_by:"type" %}

{% for type in net %}
  <h1>{{ type.name }}</h1>
  <ul>
    {% for item in type.items %}
    <li>{{ item.ip }} ...</li>
    {% endfor %}
  </ul>
{% endfor %}