for循环文件名中的页面变量

时间:2014-02-20 04:34:51

标签: jekyll liquid

对于双语网站,我有2种语言的yaml数据文件。

文件示例:

en_services.yml
fr_services.yml

我页面中的变量示例:

---
lang: en
---

我想循环使用lang作为前缀的文件,类似的东西:

{% for service in site.data.{{ page.lang }}_services %}

{% endfor %}

这不起作用,我有办法吗?

顺便说一句,我认为我不能在_data文件夹中添加子文件夹,对吗?

感谢。

3 个答案:

答案 0 :(得分:1)

您应该使用:

site.data[{{ page.lang }} + '_services']

data [i]包含_data目录中所有文件的键/值条目,并传入字符串,如下所示(对于/_data/book.yaml):

site.data['book'] 

...完全有效,并且可以将括号内的字符串连接到您想要的任何变量。 :)

答案 1 :(得分:1)

{% capture thefile %}{{ page.lang }}_services{% end capture %}
{% for service in site.data[thefile] %}
...
{% endfor %}

应该做的伎俩。

答案 2 :(得分:0)

虽然这不起作用,但是如果你能将它们放在同一个文件中(按照相应的语言代码分组),那么就有一个解决方案。

This gist是另一个基于帖子作者的例子,但您应该能够使用语言代码而不是作者名称来使用相同的设置。