Una de las limitaciones con las que me he encontrado al utilizar Jekyll para la creación de páginas web ligeras es el que este no cuenta con la opción de paginar en las categorías, la paginación es a nivel de todo el sitio.

En mi caso yo utilizo las categorías para separar áreas, por ejemplo, utilizo categorías como blog y noticias. Para solventar esta necesidad, tuve que crear un Jekyll Plugin.

Este plugin obtiene todas las categorías con sus publicaciones, e itera las publicaciones de cada categoría para agregar a cada publicación una referencia de tipo [category_name]_previous donde el [category_name] se reemplaza por el respectivo nombre de la categoría.

Para hacer uso de este plugin, por ejemplo, para la categoría noticias se haría así:

1
2
3
4
5
6
7
8
9
10
11
12
13
<ul class="pagination">
{% if page.noticias_previous %}
  <li class="prev"><a href="{{ page.noticias_previous.url | prepend: site.baseurl }}" title="{{ page.noticias_previous.title }}">&laquo; Anterior</a></li>
{% else %}
  <li class="prev disabled"><a>&larr; Anterior</a></li>
{% endif %}
  <li><a href="{{ "/noticias/" | prepend: site.baseurl }}" title="Listado de noticias">Noticias</a></li>
{% if page.noticias_next %}
  <li class="next"><a href="{{ page.noticias_next.url | prepend: site.baseurl }}" title="{{ page.noticias.title }}">Siguiente &raquo;</a></li>
{% else %}
  <li class="next disabled"><a>Siguiente &rarr;</a>
{% endif %}
</ul>

Esta solución ha sido probada con la versión jekyll 3.0.1.

Autor

Marvin Monge

Senior Java Developer / SysAdmin

  • Oracle Certified Expert, Java EE6 Java Persistence API Developer.
  • Oracle Certified Professional, Java SE 7 Programmer.
  • Oracle Linux Certified Implementation Specialist.
  • Oracle WebLogic Server 12c Certified Implementation Specialist.

Flecha Roja Technologies, 2016.