initial commit
[m6w6/m6w6.github.io] / _plugins / tags.rb
1 module Tags
2 class TagPageGenerator < Jekyll::Generator
3 safe true
4
5 def generate(site)
6 tags = site.posts.docs.flat_map { |post| post.data['tags'] || [] }.uniq
7 tags.to_set.each do |tag|
8 site.pages << TagPage.new(site, site.source, tag, tags)
9 end
10 end
11 end
12
13 class TagPage < Jekyll::Page
14 def initialize(site, base, tag, tags)
15 @site = site
16 @base = base
17 @dir = ""
18 @name = "@#{tag}.html"
19
20 self.process(@name)
21 self.read_yaml(base, File.join("_layouts", "tags.html"))
22 self.data['tag'] = tag
23 self.data['title'] = "Posts in #{tag}"
24 self.data['permalink'] = "@#{tag}.html"
25 self.data['all_tags'] = tags
26 end
27 end
28 end