在 Front Matter 中过滤 key:value 对的 Jekyll 语法是什么?
What Jekyll syntax to filter key:value pair in Front Matter?
在我的 Jekyll 站点中,我有一个页面在前端存储了一组数据,如下所示:
---
layout: page
title: MyTitle
array:
- key1: value1
- key2: value2
---
我想在我的模板中做的事情:给定一个 keyX,从数组中获取 valueX。
我找到了访问数组的方法:
{% assign subpage = site.pages | where: 'title', 'MyTitle' %}
{% assign array = subpage[0].array %}
现在我需要写的查询是:"from the array, extract the value that matches keyX".
有没有办法在不需要循环的情况下搜索数组?我能找到的所有例子都是基于一维数组的...
同时我发现了这个解决方法:
{% for valueList in array %}
{% for valuePair in valueList %}
{% if valuePair[0] == "key1" %}
{% assign value = valuePair[1] %}
{% endif %}
{% endfor %}
{% endfor %}
您的数组是非标准化对象的数组(它们没有相同的键)。
{{ page.array | inspect }}
returns
[{"key1"=>"value1"}, {"key2"=>"value2"}]
此处唯一的搜索方式是遍历所有数组项。
如果将数组重构为对象,则可以从键中获取值。
---
[...]
object:
key1: value1
key2: value2
...
示例:
{% assign searched = "key1" %}
{{ page.object[searched] }}
在我的 Jekyll 站点中,我有一个页面在前端存储了一组数据,如下所示:
---
layout: page
title: MyTitle
array:
- key1: value1
- key2: value2
---
我想在我的模板中做的事情:给定一个 keyX,从数组中获取 valueX。
我找到了访问数组的方法:
{% assign subpage = site.pages | where: 'title', 'MyTitle' %}
{% assign array = subpage[0].array %}
现在我需要写的查询是:"from the array, extract the value that matches keyX".
有没有办法在不需要循环的情况下搜索数组?我能找到的所有例子都是基于一维数组的...
同时我发现了这个解决方法:
{% for valueList in array %}
{% for valuePair in valueList %}
{% if valuePair[0] == "key1" %}
{% assign value = valuePair[1] %}
{% endif %}
{% endfor %}
{% endfor %}
您的数组是非标准化对象的数组(它们没有相同的键)。
{{ page.array | inspect }}
returns
[{"key1"=>"value1"}, {"key2"=>"value2"}]
此处唯一的搜索方式是遍历所有数组项。
如果将数组重构为对象,则可以从键中获取值。
---
[...]
object:
key1: value1
key2: value2
...
示例:
{% assign searched = "key1" %}
{{ page.object[searched] }}