Jekylldate格式化工作如何?
我正在使用Jekyll来生成一个简单的网站。
我希望date字段以12 September 2011
的格式显示。
我发现,通过一些有创意的search引擎,一些date格式的操作,但似乎没有让我的月份名称。 我有什么是{{ page.date| date: "%m-%d-%Y" }}
{{ page.date| date: "%m-%d-%Y" }}
,这使得我输出09-12-2011
,但不是我所期待的。
Jekyll有没有办法让这个月成为一个名字?
或者,除此之外,是否有任何文件的date属性?
要生成格式如下所示的date:
9 September 2013
使用这个输出filter:
{{ page.date | date: "%-d %B %Y" }}
在date位置( %-d
)使用破折号( -
)可防止数字在10以下的前导零。 有关各个date格式化标记的详细信息,请参见Liquid“输出标签和filter”文档页面 。
使用标签和filter,date可以以任何你喜欢的方式进行格式化。 例如:
- 2013年9月23日
- 2013年9月23日
- 2013年9月23日
- 2013年7月4日(即将名称改为其他语言,如“Juli”而不是“July”)。
为了说明如何生成它们,我把这个大型的Jekylldate格式化例子放在一起。
Jekyll增加了液体的filter扩展。 看到这里 。 您只需运行date_to_long_string
filter即可显示所需的date格式。
从链接:
date到长string
以长格式格式化date,例如“2011年1月27日”。
{{ site.time | date_to_long_string }}
{{ site.time | date_to_long_string }}
=> 17 November 2008
尝试'%B'这意味着“完整的月份名称(”一月“)”
search文档strftime,通常用于将date转换为string的函数。
使用{{ page.date| date: "%d %B %Y" }}
{{ page.date| date: "%d %B %Y" }}
对于像2011年9月12日那样的date,请参考Jekylldate格式化的快速格式化指南
以防万一你想要一个自定义的解决scheme,你可以编写一个Jekyll插件来格式化一个date,就像这样(这个例子是用于意大利date的):
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>