在 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] }}