我正在尝试打印的是ul
li
个,每个都包含所有具有给定标记的页面(在元数据中设置)
如果不熟悉Awestruct,它与Jekyll类似,页面元数据可以作为page.property
访问,页面位于site
对象中,可以使用site.pages.each
进行迭代
我想要实现的是这样的事情:
Category
Page
Page
Category
Page
Page
到目前为止,我只能打印页面标题。
- site.pages.each do |page|
%li
%a{ :href => page.url}= page.title
我有一个简单的解决方案吗?
答案 0 :(得分:2)
如果我满足于你想要的东西,这样的事情应该有效:
%ul
-site.pages.group_by(&:category).each do |category, pages|
%li
= category
%ul
-pages.each do |page|
%li
%a{href: page.url}= page.title
这使用group_by
创建一个以类别属性为键的页面数组的哈希值,并生成每个页面中所有页面的嵌套列表。
这将包括所有页面,包括没有类别的thoe,因此您可能希望首先使用reject
过滤网页数组:
-site.pages.reject{|p| p.category.nil?}.group_by(&:category).each do |category, pages|
...