如何在Jekyll';s_数据文件夹?
我如何循环查看Jekyll中我的_数据文件夹中的每个文件 目前,我在一个名为sidebarlist.yml的文件中有一个文件列表,如下所示:如何在Jekyll';s_数据文件夹?,jekyll,liquid,Jekyll,Liquid,我如何循环查看Jekyll中我的_数据文件夹中的每个文件 目前,我在一个名为sidebarlist.yml的文件中有一个文件列表,如下所示: - file1 - file2 - file3 _data/ navigation.yml news.yml people/ advisors.yml board.yml staff.yml - name: Anne Smith role: Role A url: mysite.com - name: Joe
- file1
- file2
- file3
_data/
navigation.yml
news.yml
people/
advisors.yml
board.yml
staff.yml
- name: Anne Smith
role: Role A
url: mysite.com
- name: Joe Shmoe
role: Role B
url: mysite.org
为了循环浏览所有这些文件,我使用以下代码:
{% for sidebar in site.data.sidebarlist %}
{% for entry in site.data.sidebars[sidebar].entries %}
...
{% endfor %}
{% endfor %}
我希望避免使用sidebarlist.yml,而只是自动遍历_data中的所有文件。我可以这样做吗?根据,jekyll将直接将YAML资源(.yml、.YAML、.json和.csv文件)加载到site.data
。如果文件使用以下格式之一,则可以执行以下操作:
{% for data in site.data %}
...
{% endfor %}
阅读你的问题标题和最后一个问题,我将回答: 您不能循环浏览保存在_data文件夹中的文件。根据和Jekyll目录结构,默认情况下,
\u data
中支持扩展名.yml.yaml.csv.json
的所有文件都将加载到site.data中,比如@wasthishelpfull的答案,您可以通过{site.data.*filename.data*}
访问它,然后像这样循环
如果要循环浏览文件,请创建一个文件夹(无下划线)
将其作为静态文件,并对文件中的数据使用jquery.get()
或者将
\u config.yml
中的\u data
更改为data
,方法是添加数据源:data
,并在url端点处访问/data
嵌套循环允许您循环浏览数据文件的内容
当我这样做时,我使用了一个,因为我不想循环遍历每个数据文件,我认为这适用于许多用例。它还使我的_数据目录更加整洁
我的数据目录如下所示:
- file1
- file2
- file3
_data/
navigation.yml
news.yml
people/
advisors.yml
board.yml
staff.yml
- name: Anne Smith
role: Role A
url: mysite.com
- name: Joe Shmoe
role: Role B
url: mysite.org
people/中的每个文件都使用如下结构:
- file1
- file2
- file3
_data/
navigation.yml
news.yml
people/
advisors.yml
board.yml
staff.yml
- name: Anne Smith
role: Role A
url: mysite.com
- name: Joe Shmoe
role: Role B
url: mysite.org
在我循环浏览这些数据文件的页面上:
{% for people_hash in site.data.people %}
{% assign people = people_hash[1] %}
{% for person in people %}
<li>{{ person.name }}, {{ person.role }}</li>
{% endfor %}
{% endfor %}
{%endfor%}
您将获得返回的值数组,这将有助于调试模板。我假设您需要使用jekyllsite.data
的方式:
谢谢,虽然这确实加载了数据文件,但对于我试图实现的目标来说,这并不是很有效。也许我的用例更复杂,因为我试图进入每个文件中的特定yaml级别。我不确定您想要完成什么,所以我没有详细说明我的答案。请随意精确说明您的用例:)很好的答案;假设OP想要遍历yaml文件的一个平面列表,这个解决方案工作得很好。