无法访问 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.yml
的 Quickstart
部分的所有数据。我用 {{ 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
。
我是 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.yml
的 Quickstart
部分的所有数据。我用 {{ 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
。