Ruby Awestruct导航:按类别对页面排序
我要打印的是一个Ruby Awestruct导航:按类别对页面排序,ruby,haml,jekyll,awestruct,Ruby,Haml,Jekyll,Awestruct,我要打印的是一个uloflis,每个页面都包含一个给定标记(在元数据中设置)的所有页面 如果不熟悉Awestruct,它类似于Jekyll,页面元数据可以作为page.property访问,页面位于site对象中,可以使用site.pages进行迭代。每个 我想要实现的是这样的目标: Category Page Page Category Page Page 到目前为止,我只能打印页面标题 - site.pages.each do |page|
ul
ofli
s,每个页面都包含一个给定标记(在元数据中设置)的所有页面
如果不熟悉Awestruct,它类似于Jekyll,页面元数据可以作为page.property
访问,页面位于site
对象中,可以使用site.pages进行迭代。每个
我想要实现的是这样的目标:
Category
Page
Page
Category
Page
Page
到目前为止,我只能打印页面标题
- site.pages.each do |page|
%li
%a{ :href => page.url}= page.title
有没有我缺少的简单解决方案?如果我不了解您想要的,类似这样的解决方案应该可以:
%ul
-site.pages.group_by(&:category).each do |category, pages|
%li
= category
%ul
-pages.each do |page|
%li
%a{href: page.url}= page.title
这用于创建键入category属性的页面数组的散列,并生成每个页面中所有页面的嵌套列表
这将包括所有页面,包括没有类别的页面,因此您可能希望首先使用以下内容筛选页面数组:
你能在传递给Haml之前重建这个结构吗?如果不改变Awestruct,我宁愿不这样做。我正在尝试在它的结构中工作,但也许我必须编写一个扩展来完成这项工作。非常感谢@matt,这正是我所需要的。
-site.pages.reject{|p| p.category.nil?}.group_by(&:category).each do |category, pages|
...