Lo que he aprendido: listar todos los posts con Jekyll

Sigo con mi aventura Jekyllera esta vez creando una página que liste todos los posts. Es tan fácil como crear una página cuyo contenido sea este:

Que generaría una lista en este plan:


  • 01 Aug 2016 » Título 1
  • 02 Aug 2016 » Título 2

  • Mucho cuidadín con los paths los estéis usando Jekyll combinado con GitHub Pages para una página de proyecto (como yo) porque la liamos petarda. La cuestión es que para GitHub Pages la url del sitio es usuario.github.io peeeero la url real es usuario.github.io/proyecto. ¿Qué nos pasa? Que todos los paths relativos se destruyen. Tenemos dos opciones para arreglar esto:

    • Usar paths absolutos: arreglamos el problema pero nos impide crear la web en local porque los paths no coinciden.
    • Leer la docu y ver que podemos usar {{site.github.url}} en lugar de {{site.url}} para que Jekyll nos resuelva los paths relativos correctamente. En nuestro caso tendríamos que sustituir {{ post.url }} por {{ post.url | prepend: site.github.url }}. En un caso general con añadir {{ site.github.url }}/ delante del path relativo lo arreglamos1.

    Os lo cuento así porque después de descubrir que nada funcionaba correctamente lo solucioné en plan cutre con el primer método. Luego ya decidí instalar Jekyll y el primer método no servía ya más y hubo que pasarse al segundo.

    Ahora si nuestra web no está en inglés, lo que tenemos que hacer es cambiar el formato de fecha para que coincida con el idioma que estemos usando, en mi caso el euskera. Hay dos opciones, la fácil y la difícil. La fácil es poner la fecha en números que son iguales en todas partes y cambiar solamente el orden. Para ello hay que sustituir la función date_to_string por el formato que queramos, en mi caso año–mes–día. Nos quedaría así:

    {{ post.date | date: "%Y-%m-%d" }}
    

    La difícil es poner la fecha entera en euskera, que no sería horriblemente complejo si el euskera no fuera un idioma tan diferente a los demás y en el que formato de fecha es AAAAko Mk D. Adaptando el ejemplo para alemán que aparece aquí nos quedaría algo así:

    {{ post.date | date: "%Yko" }}
    {% assign m = post.date | date: "%-m" %}
      {% case m %}
              {% when '1' %}urtarrilak
              {% when '2' %}otsailak
              {% when '3' %}martxoak
              {% when '4' %}apirilak
              {% when '5' %}maiatzak
              {% when '6' %}ekainak
              {% when '7' %}uztailak
              {% when '8' %}abuztuak
              {% when '9' %}irailak
              {% when '10' %}urriak
              {% when '11' %}azaroak
              {% when '12' %}abenduak
      {% endcase %}
    {{ post.date | date: "%-d" }}
    

    Por cierto, usamos %-d y %-m para quitar el cero de los días y los meses.

    Podéis ver como queda aquí y hurgar en el código aquí.

    Por ahora nada más, seguiré investigando 🙂

    Más

    Índice de entradas

    Formato de fecha en Jekyll

    Jekyll tips: date formatting


    1. Aquí tenéis un ejemplo. 
    Anuncios

    Un pensamiento en “Lo que he aprendido: listar todos los posts con Jekyll

    1. Pingback: Compilación: GitHub Pages y Jekyll | Onda Hostil

    ¡Opina sin miedo! (Puedes usar Markdown)

    Introduce tus datos o haz clic en un icono para iniciar sesión:

    Logo de WordPress.com

    Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

    Imagen de Twitter

    Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

    Foto de Facebook

    Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

    Google+ photo

    Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

    Conectando a %s