Как работает форматирование даты 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>