diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2017-01-09 19:19:19 -0500 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2017-01-09 19:19:19 -0500 |
commit | f1b364abf455b3654580718972a77572ca29be02 (patch) | |
tree | 875108b3c8c3ca8af7c8430f37f78be00a91684f /lib/sitegen.rb | |
parent | 955387e6af782e1dabd4d68ad12904263c4e8023 (diff) |
Implement tag pages (finally!)
Diffstat (limited to 'lib/sitegen.rb')
-rw-r--r-- | lib/sitegen.rb | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/lib/sitegen.rb b/lib/sitegen.rb index ca0c4bf..78222a3 100644 --- a/lib/sitegen.rb +++ b/lib/sitegen.rb @@ -3,19 +3,26 @@ require 'date' require 'fileutils' require 'set' +require 'page_local' + module Sitegen def self.init - @mk = {} + @local = {} + @remote = {} @want = Set[] end def self.add(page) @deps = nil - page.local_depends.keys.each do |filename| - @mk[filename] = page unless filename.empty? + if page.is_a?(LocalPage) + page.local_depends.keys.each do |filename| + @local[filename] = page unless filename.empty? + end + else + @remote[page.url] = page end end def self.pages - @mk.values.to_set + @local.values.to_set.merge(@remote.values) end def self.want(filename) @deps = nil @@ -27,7 +34,7 @@ module Sitegen ret = {} ret[:all] = @want @want.each do |filename| - ret[filename] = libfiles.clone.merge(@mk[filename].local_depends[filename]) + ret[filename] = libfiles.clone.merge(@local[filename].local_depends[filename]) end @deps = ret end @@ -62,18 +69,18 @@ module Sitegen def self.generate(target) case - when @mk[target].nil? + when @local[target].nil? raise "No rule to make target '#{target}'. Stop." when target.end_with?(".atom") puts "atom #{target}" write_atomic(target) do |file| file.puts('<?xml version="1.0" encoding="utf-8"?>') - file.print(@mk[target].atom) + file.print(@local[target].atom) end when target.end_with?(".html") puts "html #{target}" write_atomic(target) do |file| - file.print(@mk[target].html) + file.print(@local[target].html) end else raise "No rule to make target '#{target}'. Stop." |