我正在试着把我的Jekyll约会翻译成法语。
我遵循了关于另一个StackOverflow问题的旧回复的建议。
其想法是创建一个自定义插件,该插件:
- 将月份名称翻译为法语,并且
- 为
<time>
元素创建一个html5友好的日期格式
这是从另一个问题中复制并改编自意大利语的代码:(我的_plugins
文件夹中的french_dates.rb
(
module Jekyll
module FrenchDates
MONTHS = {"01" => "janvier", "02" => "février", "03" => "mars",
"04" => "avril", "05" => "mai", "06" => "juin",
"07" => "juillet", "08" => "août", "09" => "septembre",
"10" => "octobre", "11" => "novembre", "12" => "décembre"}
# http://man7.org/linux/man-pages/man3/strftime.3.html
def frenchDate(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::FrenchDates)
在Jekyll中,这样调用插件:(在我的_layouts/blog.html
中(
<time datetime="{{ page.date | html5date }}">{{ page.date | frenchDate }}</time>
我的问题是,当我试图在我的Jekyll网站上实现这一点时,我得到了以下错误消息:
Liquid Exception: Invalid Date: 'nil' is not a valid datetime. in /_layouts/blog.html
我如何使这个插件工作?
我想通了!
尽管我正在编辑一个页面,但日期是在我帖子的首页设置的。
因此,这就是我必须调用插件的方式:
<time datetime="{{ post.date | html5date }}">{{ post.date | frenchDate }}</time>
我的代码返回nil
,因为我的页面本身没有定义日期。