# coding: utf-8 require 'category' require 'page_index' require 'page_remote' require 'sitegen' class TagPage < IndexPage def initialize(abbr) @category = Category::new(abbr) super("src/tags/#{@category.abbr}.phony") end def index_title return "Tag: #{@category.name}" end def index_pages return Sitegen::pages .select{|p|!p.is_a?(IndexPage)} .select{|p|p.atom_categories.any?{|c|c.abbr == @category.abbr}} .to_set end def local_outfile return "out/tags/#{@category.abbr}.html" end def index_depends if @depends.nil? deps = Set['config.yaml'] Sitegen::pages.select{|p|!p.is_a?(RemotePage)}.each{|p|deps.merge(p.local_depends[''])} @depends = deps end @depends end def local_depends return { '' => index_depends, local_outfile => index_depends.clone.merge(["tmpl/index.md.erb", "tmpl/page.html.erb"]), } end end class TagIndexPage < IndexPage def initialize super("src/tags") end def index_title return "Tags" end def index_pages return Sitegen::pages .select{|p|p.is_a?(TagPage)} .to_set end def index_depends if @depends.nil? deps = Set[] Sitegen::pages.select{|p|p.is_a?(LocalPage)}.each{|p|deps.merge(p.local_depends[''])} @depends = deps end @depends end end