Jekyll 为什么这个过滤器在杰基尔不起作用?

Jekyll 为什么这个过滤器在杰基尔不起作用?,jekyll,liquid,github-pages,Jekyll,Liquid,Github Pages,我有一个github页面,其\u include目录中有一个文件courses.html: {% assign id = include.lessonID | split: '.' %} {% assign courseID = id | first %} {% assign node = site.data.courses | where: "id","1" %} {% assign node = node[1] %} {%- if node.id == empty -%} <h

我有一个github页面,其
\u include
目录中有一个文件courses.html:

{% assign id = include.lessonID | split: '.' %}
{% assign courseID = id | first %}
{% assign node = site.data.courses | where: "id","1" %}

{% assign node = node[1] %}

{%- if node.id == empty -%}
  <h1> EMPTY NODE Warning</h1>
{%- else -%}
  <h2> DATA Found! </h2>
  ID: {{ node.id }}
{%- endif -%}

<p>CourseID: {{node.id}}</p>
<p>Name: {{ node.name }}</p>
<p>Link: {{ node.permalink }}</p>

{%- for node in site.data.courses -%}
  {%- if node.id == 1 -%}
    <p>{{ node.name }}</p>
    <p>{{ node.permalink }}</p>
  {%- endif -%}
{%- endfor -%}
{% include courses.html post=page.lessonInfo.lessonID post=page %}
最后,还有一个文件
lister.md
,它包含以下内容:

---
layout: courses
title:  'Test'
lessonInfo:
  lessonID : 1.1
  modName: 'Installing RHEL Server'
  chapterName: 'Using Essential Tools'
---

# There should be some course list around here!
结果如下:

找到数据
ID:
课程ID:
名称:
链接:
RHCSA
/rhcsa

显然,
节点
变量不是空的,但是当我使用
where
子句选择数组的正确元素时,我无法访问任何属性

但是,当使用
for
循环中的
if
语句的第二部分时,这是有效的。我如何修正where子句


编辑 @JJJ的建议确实解决了我的问题,但我现在有一个相关的问题。我不能用变量替换表达式
中的常量
1
,其中:“id”,“1”
!我尝试了正常的where子句(带引号和不带引号),但都不起作用。所以,我尝试了一个where表达式,它也不起作用:

{% assign node = site.data.courses | where: "id",courseID %}
不行

这也不是


我做错了什么?如何修复它?

首先,与大多数编程语言一样,数组是零索引的<代码>节点[1]包含第二个节点,而不是第一个节点。您可能是指
{%assign node=node[0]]}


其次,
if node.id==empty
不是检查值是否存在的方法。只需执行
,除非node
node.size==0

,首先,与大多数编程语言一样,数组是零索引的<代码>节点[1]包含第二个节点,而不是第一个节点。您可能是指
{%assign node=node[0]]}


其次,
if node.id==empty
不是检查值是否存在的方法。只需执行
操作,除非node
node.size==0

那么如何将变量计算为空?在什么情况下?请查看我对问题的编辑(在底部)。我尝试了你的解决方案,但似乎无法适应我的问题!这是一个完全不同的问题。请将其作为一个单独的问题发布。那么如何将变量计算为空?在什么情况下?请查看我对问题的编辑(在底部)。我尝试了你的解决方案,但似乎无法适应我的问题!这是一个完全不同的问题。请将其作为单独的问题发布。请在单独的问题中发布不同的问题。请在单独的问题中发布不同的问题。
{% assign node = site.data.courses | where_exp: "selNode","selNode.id == courseID" %}