2016-10-31 2 views
1

これをソートするにはどうすればいいですかステートメントが混在していますか?
私はすでにjavascriptとjqueryで試してみましたが、私は<ul>NULLであるというエラーが出ました。

Jekyll CollectionとJekyll Dataを1つの配列でソートすることはできますか?

<ul> 
    {% assign docs = site.documents | sort: "title" %} 
    {% for document in docs %} 
    <li> 
    <a href="{{ document.url }}">{{ document.title }} - {{ document.url }}</a> 
    </li> 
    {% endfor %} 
    {% assign dataDocs = site.data.documents | sort: "title" %} 
    {% for document in dataDocs %} 
    <li> 
    <a href="{{ document.url }}" download="{{ document.path }}">{{ document.title }} - {{ document.url }}</a> 
    </li> 
    {% endfor %} 
</ul> 

答えて

0

あなたは1つのリストではなく、各リストをソートしています。あなたは、各項目の前付にしたり、構成のジキルのデフォルトでis_from_data: trueを追加することができます

<ul> 
    {% assign docs = site.documents | concat: site.data.documents | sort: "title" %} 

    {% for document in docs %} 
    <li> 
     {% if document.is_from_data %} 
     <a href="{{ document.url }}" download="{{ document.path }}">{{ document.title }} - {{ document.url }}</a> 
     {% else %} 
     <a href="{{ document.url }}">{{ document.title }} - {{ document.url }}</a> 
     {% endif %} 
    </li> 
    {% endfor %} 
</ul> 

:あなたは、彼らに余分前付識別子(is_from_data)を与えることによってソートする前にそれつのリスト作り、それぞれ異なるアイテムをレンダリングすることができます。ジキルの


古いバージョンはconcatフィルタを持っていない可能性があります。各要素を新しい配列にプッシュすることで回避できます。

{% assign docs = "" | split: "" %} 

{% for doc in site.documents %} 
    {% assign docs = docs | push: doc %} 
{% endfor %} 

{% for doc in site.data.documents %} 
    {% assign docs = docs | push: doc %} 
{% endfor %} 
関連する問題