Как работает форматирование даты Jekyll?

Я использую Jekyll для создания простого сайта.

Я хочу, чтобы поле даты отображалось в формате 12 September 2011.

Я обнаружил, что через какой-то креативный googling немного манипулирует форматом даты, но ничего, похоже, не дает мне название месяца. У меня есть {{ page.date| date: "%m-%d-%Y" }}, который выводит меня как 09-12-2011, но не совсем то, что я ищу.

Есть ли способ получить месяц как имя в Jekyll?

Или, если это не так, есть ли какая-либо документация для атрибута даты?

Ответ 1

Решение

Чтобы создать даты, отформатированные так:

9 September 2013

Используйте этот выходной фильтр:

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

Примечание: параметр - перед параметром дня (т.е. %-d) предотвращает появление начальных нулей в числах ниже десяти (т.е. 9 September 2013 вместо 09 September 2013).

Детали отдельных маркеров форматирования даты можно найти на странице документации Liquid "Output tags and filters" .

Подробнее

Даты могут быть отформатированы практически любым способом. Например:

  • 2013-09-23
  • 23 сентября 2013 г.
  • Сентябре 23rd, 2013
  • 4 Juli 2013 (т.е. изменение имен на другие языки, такие как "Juli" вместо "July" ).

Я собрал этот большой набор примеров форматирования дат Jekyll, показывающий, как их производить.

Ответ 2

Jekyll добавляет фильтры к жидкости. См. здесь. Вы можете отобразить нужный формат даты, просто запустив фильтр date_to_long_string.

Из ссылки:


Дата в длинную строку

Отформатируйте дату в длинном формате, например. "27 января 2011 года".

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

Ответ 3

Попробуйте "% B", что означает "Полное имя месяца (` `Январь '')"

выполните поиск документации для strftime, функции, которая обычно используется для преобразования даты в строку.

Ответ 4

Используйте {{ page.date| date: "%d %B %Y" }} для таких дат, как 12 сентября 2011 года, обратитесь к хорошему и быстрому руководству по форматированию на Форматирование даты Jekyll

Ответ 5

На всякий случай, если вы хотите создать собственное решение, вы можете написать плагин Jekyll для форматирования даты, как хотите, например (это пример для итальянских дат):

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)

Просто сохраните это в файле типа _plugins/italian_dates.rb и используйте его так, как вам нужно в шаблонах:

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