diff options
author | Loek Le Blansch <loek@pipeframe.xyz> | 2025-01-24 23:58:41 +0100 |
---|---|---|
committer | Loek Le Blansch <loek@pipeframe.xyz> | 2025-01-24 23:58:41 +0100 |
commit | ca3d6e59baade9eafdf5b1d35be617a9947f4d06 (patch) | |
tree | 4e206ca627565acb87e86e5b8da77aa86b859e55 | |
parent | 993b7c123c52965642d1bd1544041cad2d9a3b0e (diff) |
remove module
-rw-r--r-- | _plugins/meta.rb | 73 |
1 files changed, 35 insertions, 38 deletions
diff --git a/_plugins/meta.rb b/_plugins/meta.rb index 6024cca..5caa6b6 100644 --- a/_plugins/meta.rb +++ b/_plugins/meta.rb @@ -1,48 +1,45 @@ -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 - # convert generated page metadata and add directly to `page.meta` in liquid - page.data['meta'] = transform_data(site, page.slug) - - # set page.authors to author metadata from git+yaml - page.data['authors'] = site.data['authors'].filter do |author| - author['git'].intersect?(page.data['meta']['authors']) - end - - # set page.date to generated date_initial - page.data['date'] = page.data['meta']['date'] +class Meta < 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 + # convert generated page metadata and add directly to `page.meta` in liquid + page.data['meta'] = transform_data(site, page.slug) + + # set page.authors to author metadata from git+yaml + page.data['authors'] = site.data['authors'].filter do |author| + author['git'].intersect?(page.data['meta']['authors']) end - end - def parse_unix_dates(data) - # recurse deeper - return data.transform_values { |val| parse_unix_dates(val) } if data.is_a? Hash - return data.map { |val| parse_unix_dates(val) } if data.is_a? Array + # set page.date to generated date_initial + page.data['date'] = page.data['meta']['date'] + end + end - # convert strings matching regex - return Time.at(Integer(data[1..])) if data.is_a? String and data =~ /^@\d+$/ + def parse_unix_dates(data) + # recurse deeper + return data.transform_values { |val| parse_unix_dates(val) } if data.is_a? Hash + return data.map { |val| parse_unix_dates(val) } if data.is_a? Array - # base case - return data - end + # convert strings matching regex + return Time.at(Integer(data[1..])) if data.is_a? String and data =~ /^@\d+$/ - def transform_data(site, slug) - data = site.data['post'][slug] - data['git_log'] = data['git_log'].sort { |c| c['date'].to_i } + # base case + return data + end - git_log = data['git_log'].filter do |commit| - !site.data['git']['ignore_commits'].include?(commit['hash']) - end + def transform_data(site, slug) + data = site.data['post'][slug] + data['git_log'] = data['git_log'].sort { |c| c['date'].to_i } - data['authors'] = git_log.map{ |c| c['author'] }.uniq - data['date_initial'] = git_log.first['date'] - data['date'] = git_log.last['date'] - return data + git_log = data['git_log'].filter do |commit| + !site.data['git']['ignore_commits'].include?(commit['hash']) end + + data['authors'] = git_log.map{ |c| c['author'] }.uniq + data['date_initial'] = git_log.first['date'] + data['date'] = git_log.last['date'] + return data end end - |