aboutsummaryrefslogtreecommitdiff
path: root/_plugins
diff options
context:
space:
mode:
Diffstat (limited to '_plugins')
-rw-r--r--_plugins/datefmt.rb8
-rw-r--r--_plugins/meta.rb31
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
+