2016-08-24 6 views
0

コレクション内の前/次のページに移動する左右矢印リンクを作成しようとしています。これは標準的なコレクションのために実装するのが簡単です:並べ替えられたJekyllコレクションをページ付けする方法は?

{% if page.previous %} 
    <a href="{{ page.previous.url }}>Left arrow</a> 
{% endif %} 
{% if page.next %} 
    <a href="{{ page.next.url }}>Right arrow</a> 
{% endif %} 

私が持っている問題は、ファイルの順序でコレクションを循環することです。フロントマター変数(position)を使用してページの特定の順序を指定する必要があります。

私はこれまでに幅広く検索しましたが、並べ替えと関連するすべての情報はページネーションではなくサイトのナビゲーションに適用されるようです。ソートされたコレクションを変数に代入した後に、液体のforループを使用する必要があるようです。私はこのループ内でpage.previouspage.nextの変数を動作させるのに苦労しています。

私は分別収集及び出力のみ文書のURLが現在のページに一致するナビゲーション矢印でドキュメントをループにしようとしましたが、それは動作していないよう:

{% assign sorted_collection site.collection | sort: "position" %} 

{% for document in sorted_collection %} 

    {% if document.url == page.url %} 

    {% if document.previous %} 
     <a href="{{ document.previous.url }}>Left arrow</a> 
    {% endif %} 

    {% if document.next %} 
     <a href="{{ document.next.url }}>Right arrow</a> 
    {% endif %} 

    {% endif %} 

{% endfor %} 

アムI私の液体シンタックスで何かを見逃しているのですか、ここで私の論理を使って間違ったルートを完全に辿っていますか

私の現在のハックの解決策は、ドキュメントのファイル名の先頭に数字を付けることです。デフォルトでは、正しい順序になっています。しかし、私はサイトを手渡しても機能しません。なぜなら、非技術的なコンテンツ制作者がファイル名を整理しておくことができないからです。

答えて

0

解決策suggested hereを見つけてテストしました。私はそのトリックがコレクション名を取り込み、それを文字列として変数に代入することだと思います。

これを行う方法は誰にもありますか?

2

あなたがリンクしているテクニックは、私がコレクションの次/前に使うものです。リンクが古くなった場合は、URLだけでなくコレクションアイテムオブジェクトを保存する同様のスニペットを以下に示します。

{% if page.collection %} 
    {% assign collection = site[page.collection] | sort: 'position' %} 
    {% assign prev = collection | last %} 
    {% assign next = collection | first %} 

    {% for item in collection %} 
    {% if item.title == page.title %} 
     {% unless forloop.first %} 
     {% assign prev = iterator %} 
     {% endunless %} 

     {% unless forloop.last %} 
     {% assign next = collection[forloop.index] %} 
     {% endunless %} 
    {% endif %} 

    {% assign iterator = item %} 
    {% endfor %} 
{% endif %} 

{% if prev %} 
    <a href="{{ prev.url }}">{{ prev.title }}</a> 
{% endif %} 

{% if next %} 
    <a href="{{ next.url }}">{{ next.title }}</a> 
{% endif %} 
関連する問題