Blog

Jekyll, paginación por categorías

Jekyll, paginación por categorías
Publicado por: Marvin Monge

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.

<script src=”https://gist.github.com/mmonge/0424bde855c1cbcca469.js“></script>

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

{% highlight liquid linenos %}
{% raw %}
<ul class=“pagination”>
{% if page.noticias_previous %}
<li class=“prev”><a href=”{{ page.noticias_previous.url | prepend: site.baseurl }}” title=”{{ page.noticias_previous.title }}”>« Anterior</a></li>
{% else %}
<li class=“prev disabled”><a>← 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 »</a></li>
{% else %}
<li class=“next disabled”><a>Siguiente →</a>
{% endif %}
</ul>
{% endraw %}
{% endhighlight %}

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

Jekyll, paginación por categorías

Marvin Monge

Senior Java Developer / SysAdmin

  • AWS Certified Solutions Architect - Associate.
  • 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.
  • Red Hat Delivery Specialist - Middleware Integration Services.