Entrada
Preview Image

Agrupar colecciones en un directorio superior

Jekyll: Agrupar colecciones en un directorio superior

En Jekyll, una colección es un conjunto de documentos (como posts, páginas o archivos Markdown) que puedes organizar por tipo, tema o propósito. Por defecto, Jekyll usa carpetas como _posts o _projects, pero ¿qué pasa si quieres agrupar varias colecciones dentro de un directorio superior, por ejemplo:

  • colecciones/
    • _posts/ (opcional)
    • _tutoriales/
    • _casos/

Esto es súper útil cuando quieres mantener tu proyecto más limpio y ordenado, especialmente si tienes muchas colecciones.

Esto se puede hacer, pero hay que configurarlo manualmente en _config.yml y usar rutas personalizadas.

Estructura recomendada

Para trabajar con la siguiente estructura:

  • colecciones/
    • _tutoriales/
    • _casos/

El nombre de la carpeta de cada colección debe empezar con _ para que Jekyll lo trate como colección.

Añadimos la configuración correspondiente en el _config.yml:

1
2
3
4
5
6
7
8
9
collections_dir: colecciones

collections:
  tutoriales:
    output: true
    permalink: /tutoriales/:title/
  casos:
    output: true
    permalink: /casos/:title/

Qué hace esto:

  • collections_dir: colecciones le dice a Jekyll que busque las colecciones dentro de esa carpeta.
  • Luego defines cada colección con su permalink.

Cómo referenciar una colección en Liquid

Por ejemplo, para listar los tutorials:

1
2
3
{% for tutorial in site.tutoriales %}
  <a href="{{ tutorial.url }}">{{ tutorial.title }}</a>
{% endfor %}

Agrupar colecciones en un directorio superior en Jekyll es una forma excelente de mantener tu proyecto limpio y escalable. Solo necesitas:

  • Configurar collections_dir
  • Definir cada colección en _config.yml
  • Mantener la estructura dentro de _collections

Las ventajas de agrupar colecciones son muchas:

  • Tu repo queda más limpio y fácil de navegar.
  • Cuando crezcas, no se te desordena todo en _posts.
  • Puedes tener distintos permalinks y configuraciones por colección.
Esta entrada está licenciada bajo CC BY 4.0 por el autor.