Как я могу использовать Liquid / Jekyll для извлечения даты из имени файла изображения?

#date #jekyll #filenames

#Дата #jekyll #имена файлов

Вопрос:

Я понимаю, что Jekyll автоматически извлекает дату из имени файла сообщения.

Как сделать то же самое с именем файла изображения, пожалуйста?

Давайте предположим, что имена файлов изображений имеют следующий формат:

  • 2020-12-10_A_the_rest_of_the_filename_of_the_image.jpg
  • 2020-12-10_B_the_rest_of_the_filename_of_the_image.jpg
  • 2020-12-10_C_the_rest_of_the_filename_of_the_image.jpg
  • 2021-01-04_A_the_rest_of_the_filename_of_the_image.jpg
  • 2021-01-04_B_the_rest_of_the_filename_of_the_image.jpg

Таким образом, он включает только ГГГГ-ММ-ДД, а затем некоторую дополнительную информацию о сортировке / индексации (например, a, b, c, …), а затем остальную часть имени файла изображения.

Основная цель — иметь возможность извлекать дату следующим образом:

  • 10 декабря 2020 г.
  • 10 декабря 2020 г.
  • 10 декабря 2020 г.
  • 04 Января 2021 г.
  • 04 Января 2021 г.

Ответ №1:

Чтобы извлечь часть даты из имени вашего файла, вы можете использовать slice split фильтр или.
Если вы используете split фильтр, вы захотите использовать first фильтр, чтобы взять первый элемент созданного массива.

Чтобы получить нужный формат даты, вы можете просто использовать date фильтр.

  1. С помощью slice :
     {{ "2020-12-10_A_the_rest_of_the_filename_of_the_image.jpg" | slice: 0, 10 | date: "%d %b, %Y" }}
     
  2. С помощью split :
     {{ "2020-12-10_A_the_rest_of_the_filename_of_the_image.jpg" | split: "_" | first | date: "%d %b, %Y" }}
     

Оба эти результата: 10 Dec, 2020


Кроме того, вы можете прочитать документацию Ruby о формате даты, доступном по адресу: https://ruby-doc.org/stdlib-2.4.1/libdoc/time/rdoc/Time.html#method-c-strptime