Blog

Jekyll, paginación por categorías

Jekyll, paginación por categorías
Publicado por: Gerardo Arroyo Arce

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="/en/”{{/" 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="/en/”{{/" “noticias” | prepend: site.baseurl }}” title="“Listado" de noticias”>Noticias</a></li>
{% if page.noticias_next %}
<li class="“next”"><a href="/en/”{{/" 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

Gerardo Arroyo Arce

CEO & Co-Founder

  • ​AWS Community Builder & Ambassador
  • ​AWS Solution Architect - Professional
  • AWS Certified Database – Specialty
  • AWS Certified Security – Specialty
  • AWS Solution Architect - Associate
  • AWS Certified Developer Associate
  • AWS Certified SysOps Administrator Associate
  • Ingeniero en Software. ITCR.
  • Master en Computación en Informática. UCR.