我有一个使用此课程的课程列表.yml
root_path
我用以下列出课程:
- title: Basic Residential HSI Install
code: OSP0000111
description: Install and Repair residential and business class POTS, HSI, and Video services
newhire: true
skillset: Copper
jobtype: CST
advanced:
- title: PTA Testing Overview
code: OSP0000114
description: Teaches the technician how to close out a T1 test using the PTA system
newhire: false
skillset: Systems
jobtype: CO
advanced: no
- title: Technician Billing
code: OSP0000112
description: Teaches the technician how to properly bill the customer
newhire: false
skillset: Copper
jobtype: CST
advanced: yes
- title: Central Office Jumper
code: OSP0000113
description: Teaches the technician how to run jumpers
newhire: true
skillset: Copper
jobtype: CO
advanced: no
这很好用。但是,现在我想使用相同的数据文件创建一个列表,只有那些newhire变量为" true"
的课程。我还没有理解任何以前解释如何执行此操作的文档。我尝试过where子句并过滤无济于事。
有什么想法吗?
每个https://jekyllrb.com/docs/templates/网站,我尝试添加where子句:
<ul>
{% for teds in site.data.courses %}
<li> Course Title: {{ teds.title }} <br />
Course Code: {{ teds.code}} <br />
Course Description: {{ teds.description }}
</li>
{% endfor %}
</ul>
我刷新了页面,没有任何反应。我得到了同一页,列出了所有课程。没有过滤。我甚至重新启动了Jekyll服务器。相同的结果,没有过滤。
Jekyll服务器注意到没有错误。
根据您的回答,我更改了数据文件变量。 2ea&#34; 0&#34;,2ea&#34; 1&#39; s&#34;。然后我将html文件更改为:
<ul>
{% for new in site.data.courses | where "newhire","true" %}
<li> Course Title: {{ new.title }} <br />
Course Code: {{ new.code }} | Job Type: {{ new.jobtype }} <br />
Description: {{ new.description }} <br />
<a href="{{ site.baseurl }}schedule.xlsx " target="_blank"> Schedule </a>
<hr />
</li>
{% endfor %}
</ul>
Jekyll服务器报告没有错误,但是当我刷新页面时,它根本没有显示任何数据。没有4个标题的列表,也没有2个喜欢我希望,只是网页。 :(
UGGH,我在晚餐后回顾时看到了我的错误:)
以下是有效的:
<ul>
{% assign teds = site.data.courses | where: 'newhire', 1 | sort: 'title' %}
{% for teds in courses %}
<li> Course Title: {{ teds.title }} <br />
Course Code: {{ teds.code }} <br />
Course Description: {{ teds.description }}
</li>
{% endfor %}
</ul>
答案 0 :(得分:1)
UGGH,我在晚餐后看到了我的错误:)明确的头脑有帮助!
正确的代码是:
<ul>
{% assign new = site.data.courses | where: 'newhire', 1 | sort: 'title' %}
{% for teds in new %}
<li> Course Title: {{ teds.title }} <br />
Course Code: {{ teds.code }} <br />
Course Description: {{ teds.description }}
</li>
{% endfor %}
</ul>
非常感谢,Christian !!
JOE
答案 1 :(得分:0)
我可以通过my blog向您展示一个工作示例,我正在做类似您想要实现的事情。
我认为我在开始时尝试使用true/false
,但我没有让它工作,所以我使用0/1
代替。 < / p>
以下是示例:
我有a data file with projects。每个项目都有一个sidebar
属性,该属性为0或1:
- name: Bitbucket Backup
url: /bitbucket-backup/
logo: /php/cache/img/bitbucket-backup-logo128x128.png
desc: A backup tool which clones all your Bitbucket repositories to your local machine
sidebar: 1
在我的布局文件中,我有一个侧边栏,我只想用sidebar == 1
列出这些项目。 I'm doing this with the following code:
{% assign projects = site.data.projects | where: 'sidebar', 1 | sort: 'name' %}
{% for project in projects %}
<li><a href="{{ project.url }}" rel="tooltip" title="{{ project.desc }}">{{ project.name }}</a></li>
{% endfor %}
请注意,当我将带有where
子句的行分配给变量(projects
)然后循环变量时,它才适用于我。
以下不工作:
{% for project in site.data.projects | where: 'sidebar', 1 | sort: 'name' %}
<li><a href="{{ project.url }}" rel="tooltip" title="{{ project.desc }}">{{ project.name }}</a></li>
{% endfor %}