2016-03-28 34 views
0

我想通过我的frontmatter的sidebar属性中的一些值来循环使用一些也使用YAML的Liquid循环,但它不起作用。如何通过YAML frontmatter内容在Liquid中循环使用? (Jekyll)

下面的代码:

--- 
sidebar: [a, b, c] 
--- 

{% for sidebar in page.sidebar %} 
{% for entry in sidebar.entries %} 
... 

我想要的代码使用a.entries,然后b.entries,然后c.entries,但它不工作。那是因为所有的YAML处理都是同时发生的,然后Jekyll管道进程转移到HTML或其他东西?

+0

我不明白的地方是'sidebar.entries'。在前面的事情? –

+0

实际上,我打算把路径放到yaml文件中,而不是a,b,c,就像这样:'site.data.sidebar.entries'。 sidebar.yaml文件从'entries:'开始。所以这个for循环将遍历这里列出的每个sidebar.yaml文件。 –

+0

对于我试图实现此代码的真实场景,请参阅此[文件](https://github.com/tomjohnson1492/documentation-theme-jekyll/blob/gh-pages/urls.txt)。我想避免重复通过每个边栏文件的循环,就像我在那里做的那样。相反,我只想在frontmatter中列出侧边栏或简单一些。 –

回答

1

这就是你如何访问一个数据文件,一个变量名:

{% for sidebar in page.sidebar %} 
    {% for entry in site.data.sidebars[sidebar].entries %} 
    .. do things with datas 
    {% endfor %} 
{% endfor %} 
+0

这有效!非常感谢您的帮助。 –