summaryrefslogtreecommitdiff
path: root/lib/sitegen.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sitegen.rb')
-rw-r--r--lib/sitegen.rb23
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."