Gab*_*lli 4 yaml liquid jekyll
我在Jekyll中使用Liquid for循环来显示基于此YAML结构的页面内容:
work_left:
isitgo:
image: /images/isitgo.png
caption: isitgoonair.net homepage
description: a website
disko:
image: /images/disko.png
caption: Disko
description: a website
work_right:
qfi:
image: /images/qfi.png
caption: qfi.im
description: a website
Run Code Online (Sandbox Code Playgroud)
这是for循环:
{% for item in page.work_left %}
{{ item.image }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
item.image不会导致字符串/images/isitgo.png和/images/disko.png输出.
如果我只是这样做{{ item }},这是结果:
isitgo
{
"image"=>"/images/isitgo.png",
"caption"=>"isitgoonair.net homepage",
"description"=>"an awesome website i made"
}
disko
{
"image"=>"/images/disko.png",
"caption"=>"Disko",
"description"=>"that site"
}
Run Code Online (Sandbox Code Playgroud)
是什么导致了这个?
kik*_*ito 17
你得到那些结果是因为液体分析关联数组的方式 - 这是什么work_left.在每次迭代中,您将获得两个项目:"密钥"和"值".
我警告你,在某些情况下,这会给你带来麻烦.值得注意的是,不保证项目出现的顺序 - isitgo可能出现在disko之后.(据我所知,这取决于您使用的ruby版本).
如果要确保始终work_left以相同的顺序获取内容,则必须使用关联数组列表而不是关联数组的关联数组,就像在哪里一样.这是它的样子:
work_left:
- name: isitgo
image: /images/isitgo.png
caption: isitgoonair.net homepage
description: a website
- name: disko
image: /images/disko.png
caption: Disko
description: a website
work_right:
- name: qfi
image: /images/qfi.png
caption: qfi.im
description: a website
Run Code Online (Sandbox Code Playgroud)
然后打印它们的代码:
{% for item in page.work_left %}
{{ item.name }}
{{ item.image }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5420 次 |
| 最近记录: |