2017-10-14 4 views
1

J'ai suivi l'approche pour installer paginate v2 et paginer une collection, mais j'obtiens un lien de page de niveau supérieur "Exemple Collection" pour chaque page créée par paginator.Comment éviter les pages en double avec des collections en utilisant jekyll paginate v2?

Voici example.md

--- 
layout: page 
title: Example Collection 
permalink: /example/ 
pagination: 
    enabled: true 
--- 

{% for post in paginator.posts %} 
    <h1>{{ post.title }}</h1> 
{% endfor %} 

{% if paginator.total_pages > 1 %} 
<ul> 
    {% if paginator.previous_page %} 
    <li> 
    <a href="{{ paginator.previous_page_path | prepend: site.baseurl }}">Newer</a> 
    </li> 
    {% endif %} 
    {% if paginator.next_page %} 
    <li> 
    <a href="{{ paginator.next_page_path | prepend: site.baseurl }}">Older</a> 
    </li> 
    {% endif %} 
</ul> 
{% endif %} 

Et voici ce que j'ai ajouté à mon config.yml

# Collections 
collections: 
    examplecol: 
    output: true 
    permalink: /:collection/:path/ 

# Plugin: Pagination (jekyll-paginate-v2) 
pagination: 
    collection : 'examplecol' 
    enabled  : true 
    debug  : false 
    per_page  : 3 
    #permalink : "/page/:num/" 
    title  : ":title - Page :num of :max" 
    limit  : 0 
    sort_field : "date" 
    sort_reverse : true 

Maintenant, s'il y a plus de 3 fichiers dans le dossier _examplecol, je reçois plus d'une instance de l'exemple.md en tant que page dans mon en-tête.

Comment puis-je avoir une seule instance de Collection d'exemples dans l'en-tête qui contient toutes les pages paginées? Je pense qu'il me manque quelque chose de stupide.

J'ai essayé de supprimer l'entrée permalink dans l'exemple.md YAML, mais cela a juste fait en sorte que le processeur jekyll ne trouve pas examplecol/index.html.

Répondre

0

Il m'a fallu beaucoup d'essais et d'erreurs, mais j'ai trouvé la solution dans l'en-tête.

Lorsque le paginateur crée des pages avec certains éléments, le site les voit comme des pages et les restitue. Par conséquent, le site trouve toutes les vraies réponses à my_page.title et crée des liens de page.

<div class="trigger"> 
      {% for my_page in site.pages %} 
       {% if my_page.title %} 
       <a class="page-link" href="{{ my_page.url | relative_url }}">{{ my_page.title | escape }}</a> 
       {% endif %} 
      {% endfor %} 
    </div> 

Depuis les pages paginateur sont autogène, vous pouvez les filtrer:

<div class="trigger"> 
     {% for my_page in site.pages %} 
      {% if my_page.title and my_page.autogen == nil %} 
      <a class="page-link" href="{{ my_page.url | relative_url }}">{{ my_page.title | escape }}</a> 
      {% endif %} 
     {% endfor %} 
</div>