无法访问 liquid object 属性 (Jekyll)

Cannot access liquid object properties (Jekyll)

我是 Jekyll 的新手,正在为我的一个项目创建一个文档网站。我正在尝试创建一个侧边栏来显示文档中的当前页面。为了存储文档的结构,我在名为 subsections.yml_data 文件夹中创建了一个文件。这是文件:

- title: Quickstart # Section
  data:
    - Get started # Subsections
    - The basics
- title: API documentation # Another section with subsections
  data:
    - Introduction

这里是 html 模板文件的摘录,将用于文档中的页面。 (液态模板引擎):

{% assign subsecs = site.data.subsections | where: 'title', page.section %}

上面的代码创建了一个名为 subsecs 的变量,它是通过读取 subsections.yml 并过滤掉文档页面相关部分的数据而创建的。因此,如果页面的部分是 Quickstart,则 subsecs 变量将包含来自 subsecitons.ymlQuickstart 部分的所有数据。我用 {{ subsecs }} 测试了这个,它通过输出来工作:

{"title"=>"Quickstart", "data"=>["Get started", "The basics"]}

但是,当我尝试从这个 object 访问某个 属性 时,如标题:

{{ subsecs.title }}

没有返回任何内容。为什么会发生这种情况,我如何在 liquid 中访问 属性 方法?语法看起来是正确的,但是当我尝试它时,呈现了一个空字符串。

我试着查看 liquid 文档,但除了 method.property 之外什么也没找到,但由于某种原因它不起作用。我也看了类似的问题。

where 过滤器正在返回一个数组。

{% assign subsecs = site.data.subsections | where: 'title', page.section %}
{{ subsecs | inspect }} 

inspect filter prints => [{"title"=>"Quickstart", "data"=>["Get started", "The basics"]}]括号表示一个数组。

你可以做到:

{% assign subsecs = site.data.subsections | where: 'title', page.section | first %}
{{ subsecs | inspect }}

first 过滤器提取数组的第一个元素。

inspect 过滤器现在打印 => {"title"=>"Quickstart", "data"=>["Get started", "The basics"]}

您现在可以访问对象的属性,例如 subsecs.title