Yaml 无法访问液体对象属性(Jekyll)
我是Jekyll的新手,正在为我的一个项目创建一个文档网站。我试图创建一个边栏,显示文档中的当前页面。为了存储文档的结构,我在Yaml 无法访问液体对象属性(Jekyll),yaml,jekyll,liquid,Yaml,Jekyll,Liquid,我是Jekyll的新手,正在为我的一个项目创建一个文档网站。我试图创建一个边栏,显示文档中的当前页面。为了存储文档的结构,我在\u data文件夹中创建了一个名为subsections.yml的文件。文件如下: - title: Quickstart # Section data: - Get started # Subsections - The basics - title: API documentation # Another section with subsect
\u data
文件夹中创建了一个名为subsections.yml
的文件。文件如下:
- title: Quickstart # Section
data:
- Get started # Subsections
- The basics
- title: API documentation # Another section with subsections
data:
- Introduction
这里是html模板文件的摘录,将用于文档中的页面。(液体模板引擎):
上面的代码创建了一个名为subsects
的变量,该变量是通过读取subsections.yml
并过滤掉文档页面所涉及部分的数据创建的。因此,如果页面的节是Quickstart
,那么subsects
变量将包含subsections.yml
中Quickstart
节中的所有数据。我用{{subsects}}
测试了这一点,它通过输出:
{"title"=>"Quickstart", "data"=>["Get started", "The basics"]}
但是,当我尝试从此对象(如标题)访问某个属性时:
{{ subsecs.title }}
一无所获。为什么会发生这种情况,我如何在liquid中访问属性方法?语法看起来是正确的,但当我尝试它时,会呈现一个空字符串
我试图查看liquid文档,但除了
method.property
,什么也没找到,因为某种原因,它不起作用。我还研究了类似的SO问题。其中过滤器返回一个数组
{% assign subsecs = site.data.subsections | where: 'title', page.section %}
{{ subsecs | inspect }}
inspect
filter prints=>[{“title”=>“Quickstart”,“data”=>[“Get start”,“The basics”]}]
括号表示数组
{% assign subsecs = site.data.subsections | where: 'title', page.section %}
{{ subsecs | inspect }}
你可以做:
{% assign subsecs = site.data.subsections | where: 'title', page.section | first %}
{{ subsecs | inspect }}
first
过滤器提取数组的第一个元素
inspect
filter现在打印=>{“title”=>“Quickstart”、“data”=>[“Get Start”、“The basics”]}
您现在可以访问对象的属性,如subsecs.title