2

私が印刷しようとしているのulli、それぞれが特定のタグを持つすべてのページを含む (メタデータに設定されている) です。

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

私が見逃している簡単な解決策はありますか?

4

1 に答える 1

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、カテゴリ属性をキーとするページの配列のハッシュを作成するために使用し、各ページのすべてのページのネストされたリストを生成します。

これには、カテゴリのないものを含むすべてのrejectページが含まれるため、最初に次のようにページ配列をフィルタリングすることをお勧めします。

-site.pages.reject{|p| p.category.nil?}.group_by(&:category).each do |category, pages|
  ...
于 2013-01-22T17:10:18.913 に答える