首页 > 解决方案 > 什么 Jekyll 语法来过滤 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 %}

现在我需要编写的查询是:“从数组中提取与keyX匹配的”。

有没有一种方法可以搜索数组,而不需要循环?我能找到的所有例子都是基于一维数组......

标签: jekyllliquid

解决方案


您的数组是一组非标准化对象(它们没有相同的键)。

{{ page.array | inspect }} 

返回

[{"key1"=>"value1"}, {"key2"=>"value2"}]

这里唯一的搜索方法是遍历所有数组的项目。

如果将数组重构为对象,则可以从键中获取值。

---
[...]
object:
  key1: value1
  key2: value2
...

例子 :

{% assign searched = "key1" %}
{{ page.object[searched] }}

推荐阅读