2016-01-03 25 views
0

我正在構建我的第一個網站,並且對分類和排序集合進行了非常困難的分組。我有唯一的成功是子目錄按字母順序排序,然後通過他們的日期的文件的文件列表(似乎是默認值)使用:對檔案進行排序/分組收藏

<ul> 
    {% for page in site.collection_name | sort: weight %} 
     <a href="{{ page.url }}"><h3>{{ page.title }}</h3></a>{{ page.category }}{{page.excerpt}} 
    {% endfor %} 
</ul> 

重量(以上)無法正常工作。類型,類別或我替代的任何其他變量都不會。

我的文件都在子目錄,並有固定鏈接爲:

/集合名稱/ CATEGORY_NAME/FILE_NAME/

前面的問題包括: 標題, 類, 佈局, 類型, (試了幾個其他)

該集合將有幾個文件類型,如: 文章, 視頻, 研究

我想完成的是通過我的收藏首先爲類別,然後按類型循環的東西。在非常糟糕的僞代碼:

<ul> 
{% for page in site.{{category_name}} %} 
<li><h2>{{category01}}</h2></li> 

    <ul> 
    {% for type in site.{{category_name.type}} | sort: date reverse%} 
    <li><h3>Articles</h3></li> 
     <li><a href="{{ page.url }}">{{ page.title }}</a>{{page.excerpt}}</li> 

    <li><h3>Videos</h3></li> 
     <li><a href="{{ page.url }}">{{ page.title }}</a>{{page.excerpt}}</li> 

    <li><h3>Research</h3></li> 
     <li><a href="{{ page.url }}">{{ page.title }}</a>{{page.excerpt}}</li> 
    </uL> 

<li><h2>{{category02}}</h2></li> 
. . . 

    . . . {% endfor %} 

任何幫助或方向將不勝感激。

回答

0

嘗試使用group_by

{% assign byCategory = site.collection_name | group_by: 'category' | sort: 'name' %} 
{% for cat in byCategory %} 
    <h2>{{ cat.name | capitalize }}</h2> 
    {% assign byType = cat.items | group_by: 'type' %} 
    {% for type in byType %} 
    <h3>{{ type.name | capitalize }}</h3> 
    <ul> 
     {% for item in type.items %} 
     <li>{{ item.title }}</li> 
     {% endfor %} 
    </ul> 
    {% endfor %} 
{% endfor %} 

注:該作品與category: mycategorycategories: [one, two]

如果你想具體的訂單類型,你可以這樣做:

_config.yml

# this array determine types order 
# a collection itm with non matching type will not be listed 
types : 
    - articles 
    - videos 
    - research 

代碼

{% assign byCategory = site.area | group_by: 'category' %} 
{% for cat in byCategory %} 
    <h2>{{ cat.name }}</h2> 
    {% assign byType = cat.items | group_by: 'type' %} 
    {% for type in site.types %} 
    {% assign currentType = byType | where:"name", type | first %} 
    <h3>{{ currentType.name | capitalize }}</h3> 
    <ul> 
     {% for item in currentType.items %} 
      <li>{{ item.title }}</li> 
     {% endfor %} 
    </ul> 
    {% endfor %} 
{% endfor %} 
+0

太謝謝你了,大衛。這似乎工作。 (我正在使用虛擬內容)。對於其他人來說,紙杯蛋糕和蛋糕是不同的類別。 –

+0

大衛,什麼是控制'類型'的順序。創建的日期/時間?這些可以更改爲特定的順序嗎? –

+0

類型的順序取決於帖子的字母順序。有關具體訂購,請參閱答案編輯。 –