2016-08-24 3 views
0

컬렉션의 이전/다음 페이지로 이동하는 왼쪽/오른쪽 화살표 링크를 만들려고합니다. 이것은 표준 컬렉션에 구현하기 쉽습니다.정렬 된 지킬 컬렉션을 페이지 매기기하는 방법은 무엇입니까?

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

문제점은 파일 순서대로 컬렉션을 순환한다는 것입니다. frontmatter 변수 (position)를 사용하여 페이지의 특정 순서를 지정해야합니다.

나는 광범위하게 검색했지만 정렬과 관련된 모든 정보는 페이지 매김이 아닌 사이트 탐색에 적용되는 것으로 보입니다. 정렬 된 컬렉션을 변수에 할당 한 후 액체 용 루프를 사용해야하는 것으로 보입니다. 이 루프 내에서 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 %} 
관련 문제