Локализация дат в Jekyll

Настраивал шаблон и столкнулся с проблемой русификацией дат. Хотелось бы видеть дату в длинном формате с русскими названиями месяца года. Но стандартные теги и фильтры Liquid и Jekyll такой возможности не дают. Есть разные варианты решения русификацией дат в Jekyll.

Jekyll имеет систему плагинов с хуками, которые позволяют вам создавать настраиваемый контент, специфичный для вашего сайта. Вы можете запускать собственный код для своего сайта, не изменяя сам исходный код Jekyll.

Мое решение плагин в виде фильтра для Liquid. Плагин использует gem russian - поддержку русского языка для Ruby и Rails при помощи библиотеки I18n.

Установим gem russian - gem install russian . Создадим файл date_fiter.rb в каталоге _plugins с таким содержанием:

# _plugins/date_fiter.rb
require "russian"
I18n.default_locale = :ru

module Jekyll
    module DateFilter
      def date_to_ru(date)
        return date if date.to_s.empty?
        return I18n.l(date,:format => "%d %B %Y")
      end
    end
end
  
Liquid::Template.register_filter(Jekyll::DateFilter)

Использовать в шаблонах Jekyll, например так {{ post.date | date_to_ru }} - результат дата поста в длинном формате с русским названием месяца года.

08 октября 2022

Эта страница последний раз обновлялась:
08-10-2022 12:56