aboutsummaryrefslogtreecommitdiff
path: root/_plugins/meta.rb
blob: f0d420f9c207988a411e741f5f9355254b3ba8f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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