diff options
Diffstat (limited to 'lib/page_index.rb')
-rw-r--r-- | lib/page_index.rb | 45 |
1 files changed, 36 insertions, 9 deletions
diff --git a/lib/page_index.rb b/lib/page_index.rb index 073537e..3e25813 100644 --- a/lib/page_index.rb +++ b/lib/page_index.rb @@ -14,7 +14,7 @@ class IndexPage < LocalPage def _metadata if @metadata.nil? - yamlfile = _infile+"/index.yaml" + yamlfile = local_infile+"/index.yaml" if File::exist?(yamlfile) @metadata = YAML::load(File::read(yamlfile)) else @@ -24,19 +24,19 @@ class IndexPage < LocalPage @metadata end def _ls - @ls ||= Dir::entries(_infile) + @ls ||= Dir::entries(local_infile) .select{|fname|not fname.start_with?(".")} - .map{|fname|"#{_infile}/#{fname}"} + .map{|fname|"#{local_infile}/#{fname}"} .select{|path|Dir::exist?(path) or Config::get.html_suffixes.include?(File::extname(path).gsub(/^[.]/, ''))} end - def pages + def index_pages if @pages.nil? @pages = [] for path in _ls if Dir::exist?(path) page = IndexPage::new(path) @pages.unshift(page) - @pages += page.pages + @pages += page.index_pages else @pages.unshift(LocalPage::new(path)) end @@ -48,16 +48,43 @@ class IndexPage < LocalPage @pages end - def _published + def atom_title + _metadata['title'] + end + + def local_outfile + local_infile.sub(/^src/, 'out')+"/index.html" + end + def local_depends + if @depends.nil? + basename = local_infile.sub(/^src/, 'out') + deps = Set[local_infile] + yamlfile = local_infile+"/index.yaml" + if File::exist?(yamlfile) + deps.add(yamlfile) + end + index_pages.each{|p|deps.merge(p.local_outfile[''])} + @depends = { + "#{basename}/index.html" => deps.clone.merge(["tmpl/index.md.erb", "tmpl/page.html.erb"]), + "#{basename}/index.atom" => deps.clone.merge(["tmpl/index.atom.erb", "tmpl/page.atom.erb"]), + } + end + @depends + end + def local_srcurl + return nil + end + + def page_published return nil end - def _updated + def page_updated return nil end - def _years + def page_years return Set[] end end ERB::new(File::read("tmpl/index.atom.erb")).def_method(IndexPage, 'atom()', "tmpl/index.atom.erb") -ERB::new(File::read("tmpl/index.md.erb")).def_method(IndexPage, '_input()', "tmpl/index.md.erb") +ERB::new(File::read("tmpl/index.md.erb")).def_method(IndexPage, 'local_input()', "tmpl/index.md.erb") |