Parece que Jekyll no tiene soporte para internacionalización de forma nativa por lo que cuando se usa un formato de fecha que incluya el nombre del mes1, este aparece en inglés. Existe un plugin de internacionalización, pero parece que no funciona del todo bien, y en general recomiendan hacer un “apaño” con un poco de código Liquid (leído aquí, aquí o aquí)

Mi primera opción fue crear un archivo con los meses en _data/es.yml de la forma:

months:
  - Enero
  - Febrero
  - Marzo
  - Abril
  - Mayo
  <!-- etc -->

y recoger el código Liquid en un include (_includes/fecha.html):

{% capture fecha_page %}
  {% assign m = page.date | date: "%-m" | minus: 1 %}
  {{ site.data.es.months[m] }} de
  {{ page.date | date: "%Y" }}
{% endcapture %}

Esto funcionaba bien para añadir la fecha en cada post, pero no para añadirla en los listados de post, porque extrae la fecha de la página (page.date). Por lo que añadí otro pedazo de código similar en el mismo include y utilicé las variables fecha_page y fecha_post según correspondiera.

{% capture fecha_page %}
  {% assign m = page.date | date: "%-m" | minus: 1 %}
  {{ site.data.es.months[m] }} de
  {{ page.date | date: "%Y" }}
{% endcapture %}
{% capture fecha_post %}
  {% assign m = post.date | date: "%-m" | minus: 1 %}
  {{ site.data.es.months[m] }} de
  {{ post.date | date: "%Y" }}
{% endcapture %}

En un post:

---
  {% include i18n_date.html %}
  <article class="articulo-largo">
    <header class="post-header">
      <h1 class="post-title">{{ page.title }}</h1>
      <p class="post-meta"><time datetime="{{ page.date | date_to_xmlschema }}"
        itemprop="datePublished">{{ fecha_page }}</time>

En un listado de post:

<ul class="post-list">
    {% for post in site.categories.articulos %}
    {% include i18n_date.html %}
      <li>
          <a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
          <span class="post-meta">{{ fecha_post }}</span>

Una solución bastante poco elegante (porque post aquí no hace referencia directa a los post, si no que es una variable circustancial del for, podría habersa llamado i o cualquier otra cosa), pero funciona y resolvía con un include las dos situaciones en las que usaba la fecha.

Finalmente, tras leer aquí una idea de cómo imitar funciones con Liquid en Jekyll, llegué a esta solución. En el lugar donde queramos introducir una fecha en español insertamos {% include fecha.html fecha=page.date %} , y donde pone page.date la fecha en cuestión que queremos convertir, que puede ser cualquier variable que contenga una fecha (page.date, post.date, etc.) o una cadena de texto en formato fecha.

Y en _includes/fecha.html creamos este archivo:

{% capture fecha_esp %}
<!--  Si se quiere incluir el día de la semana, descomentar esta parte
  {% assign d = include.fecha | date: "%w" | minus: 0 %}
  {{ site.data.es.days[d] }},
  {{ include.fecha | date: "%-d" }} de
  -->
  {% assign m = include.fecha | date: "%-m" | minus: 1 %}
  {{ site.data.es.months[m] }} de
  {{ include.fecha | date: "%Y" }}
{% endcapture %}
{{ fecha_esp }}

En _data/es.yml este otro al que he añadido también los días de la semana. Y los ejemplos anteriores quedarían de la forma:

Un post:

---
<article class="articulo-largo">
  <header class="post-header">
    <h1 class="post-title">{{ page.title }}</h1>
    <p class="post-meta"><time datetime="{{ page.date | date_to_xmlschema }}"
      itemprop="datePublished">{% include fecha.html fecha=page.date %}</time>

Un listado de post:

<ul class="post-list">
    {% for post in site.categories.articulos %}
      <li>
          <a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
          <span class="post-meta">{% include fecha.html fecha=post.date %}</span>
  1. Todo esto es también aplicable para el nombre del día de la semana, solo que en mi caso, no lo estoy usando. 

Este sitio es una web estática, creada con Jekyll. De momento usa el theme HPSTR de Michael Rose, que utiliza SASS para los estilos.

El repositorio git está alojado en Bitbucket y la web se despliega usando Aerobatic.

Espero más adelante poder dedicar algún post a detallar los aspectos concretos de estas tecnologías.