tutorial site pages generate extension liquid jekyll

site - liquid tutorial



¿Cómo funciona el formato de fecha de Jekyll? (6)

Solución

Este filtro de salida:

{{ page.date | date: "%-d %B %Y" }}

produce fechas formateadas como:

9 September 2013

Asegúrese de no perder el signo menos ( - ) delante del %-d del día. Sin él, los números debajo de diez tendrían ceros iniciales (por ejemplo, 09 September 2013 ).

Los detalles sobre los tokens de formato de fecha individuales se pueden encontrar en la página de documentación de Líquidos de "etiquetas y filtros de salida" .

Más información

Junté un alanwsmith.com/jekyll-liquid-date-formatting-examples . Proporciona ejemplos para varios formatos y debe proporcionar suficientes detalles para formatear de la manera que desee. Algunos ejemplos incluyen:

  • 2013-09-23
  • 23 de septiembre de 2013
  • 23 de septiembre de 2013
  • 4 de julio de 2013 (es decir, cambiar los nombres a otros idiomas como "Juli" en lugar de "julio").

¡Disfrutar!

Estoy usando Jekyll para generar un sitio simple.

Quiero que el campo de fecha se muestre en el formato 12 September 2011 .

He encontrado, a través de googlear creativamente, un poco de manipulación de formato de fecha, pero nada que me pueda dar el nombre del mes. Lo que tengo es {{ page.date| date: "%m-%d-%Y" }} {{ page.date| date: "%m-%d-%Y" }} , que me da salida como 09-12-2011 , pero no es exactamente lo que estoy buscando.

¿Hay alguna forma de obtener el mes como nombre en Jekyll?

O bien, salvo eso, ¿hay alguna documentación para el atributo de fecha?


En caso de que desee una solución personalizada, puede escribir un plugin de Jekyll para formatear una fecha como desee, de esta manera (este ejemplo es para fechas italianas):

module Jekyll module ItalianDates MONTHS = {"01" => "gennaio", "02" => "febbraio", "03" => "marzo", "04" => "aprile", "05" => "maggio", "06" => "giugno", "07" => "luglio", "08" => "agosto", "09" => "settembre", "10" => "ottobre", "11" => "novembre", "12" => "dicembre"} # http://man7.org/linux/man-pages/man3/strftime.3.html def italianDate(date) day = time(date).strftime("%e") # leading zero is replaced by a space month = time(date).strftime("%m") year = time(date).strftime("%Y") day+'' ''+MONTHS[month]+'' ''+year end def html5date(date) day = time(date).strftime("%d") month = time(date).strftime("%m") year = time(date).strftime("%Y") year+''-''+month+''-''+day end end end Liquid::Template.register_filter(Jekyll::ItalianDates)

Simplemente guárdelo en un archivo como _plugins/italian_dates.rb y _plugins/italian_dates.rb como lo necesite en las plantillas:

<time datetime="{{page.date | html5date}}">{{page.date | italianDate}}</time>


Jekyll 3.8 admite fechas ordinales fuera de la caja. Para dar salida al mes, use uno de estos.

{{ page.date | date_to_long_string: "ordinal", "US" }} {{ page.date | date_to_long_string: "ordinal", "US" }} saldrá April 24th, 2018 .

{{ page.date | date_to_string: "ordinal", "US" }} {{ page.date | date_to_string: "ordinal", "US" }} saldrá el Apr 24th, 2018 .

{{ page.date | date_to_long_string: "ordinal" }} {{ page.date | date_to_long_string: "ordinal" }} saldrá el 24th April 2018 .

{{ page.date | date_to_string: "ordinal" }} {{ page.date | date_to_string: "ordinal" }} saldrá el 24th Apr 2018 .


Jekyll agrega extensiones de filtro al líquido. Mira here . Puede mostrar el formato de fecha deseado simplemente ejecutando el filtro date_to_long_string .

Desde el enlace:

Fecha en cadena larga

Formatee una fecha en formato largo, por ejemplo, "27 de enero de 2011".

{{ site.time | date_to_long_string }} {{ site.time | date_to_long_string }} => 17 November 2008


Pruebe con ''% B'', que significa ''El nombre completo del mes (`` Enero'' '') "

busque la documentación para strftime, la función que se usa generalmente para convertir una fecha en cadena.


Usa {{ page.date| date: "%d %B %Y" }} {{ page.date| date: "%d %B %Y" }} para fechas como el 12 de septiembre de 2011 , consulte la guía de formato agradable y rápido en Jekyll Date Formatting