aboutsummaryrefslogtreecommitdiff
path: root/_plugins/meta.rb
diff options
context:
space:
mode:
Diffstat (limited to '_plugins/meta.rb')
-rw-r--r--_plugins/meta.rb23
1 files changed, 22 insertions, 1 deletions
diff --git a/_plugins/meta.rb b/_plugins/meta.rb
index d1d4a24..28afd13 100644
--- a/_plugins/meta.rb
+++ b/_plugins/meta.rb
@@ -3,7 +3,8 @@ class Meta < Jekyll::Generator
# convert yaml @0123456789 (unix timestamps) into ruby Date
site.data = parse_unix_dates(site.data)
- for page in site.collections['items'] do
+ posts = site.collections['items']
+ for page in posts do
# convert generated page metadata and add directly to `page.meta` in liquid
page.data['meta'] = transform_data(site, page.slug)
@@ -15,6 +16,9 @@ class Meta < Jekyll::Generator
# set page.date to generated date_initial
page.data['date'] = page.data['meta']['date']
end
+
+ # count tags on all posts
+ site.data['tags'] = count_tags(posts)
end
def parse_unix_dates(data)
@@ -43,4 +47,21 @@ class Meta < Jekyll::Generator
data['edits'] = git_log.length - 1 # original commit is not an edit
return data
end
+
+ def count_tags(posts)
+ tags = {}
+
+ # tally tags
+ for post in posts do
+ for tag in post.tags do
+ tags[tag] = tags.fetch(tag, 0) + 1
+ end
+ end
+
+ # sort by post count descending
+ tags = tags.sort_by {|key,value| -value}
+
+ return tags
+ end
end
+