diff options
Diffstat (limited to '_plugins')
-rw-r--r-- | _plugins/datefmt.rb | 8 | ||||
-rw-r--r-- | _plugins/meta.rb | 31 |
2 files changed, 39 insertions, 0 deletions
diff --git a/_plugins/datefmt.rb b/_plugins/datefmt.rb new file mode 100644 index 0000000..7c2274f --- /dev/null +++ b/_plugins/datefmt.rb @@ -0,0 +1,8 @@ +module DateFormatter + def datefmt(input) + return input.strftime("%F") + end +end + +Liquid::Template.register_filter(DateFormatter) + diff --git a/_plugins/meta.rb b/_plugins/meta.rb new file mode 100644 index 0000000..f0d420f --- /dev/null +++ b/_plugins/meta.rb @@ -0,0 +1,31 @@ +module Meta + class Generator < Jekyll::Generator + def generate(site) + # convert yaml @0123456789 (unix timestamps) into ruby Date + site.data = parse_unix_dates(site.data) + + for page in site.collections['items'] do + # directly add generated page metadata to `page.meta` in liquid + page.data['meta'] = site.data['post'][page.slug] + + # set page.date to generated date_initial + page.data['date'] = page.data['meta']['date_initial'] + end + end + + def parse_unix_dates(data) + for key, value in data do + if value.is_a? Hash + data[key] = parse_unix_dates(value) + next + end + + next unless value.is_a? String + next unless value =~ /^@\d+$/ + data[key] = Time.at(Integer(value[1..])) + end + return data + end + end +end + |