From 3d989e2caf683d8300ae4e8191b81fd6fe0c0948 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sat, 7 Jan 2017 00:14:22 -0500 Subject: more --- lib/page_index.rb | 3 ++- lib/page_local.rb | 3 +++ lib/sitegen.rb | 27 +++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/page_index.rb b/lib/page_index.rb index 6354c8a..178525c 100644 --- a/lib/page_index.rb +++ b/lib/page_index.rb @@ -72,8 +72,9 @@ class IndexPage < LocalPage if File::exist?(yamlfile) deps.add(yamlfile) end - index_pages.each{|p|deps.merge(p.local_outfile[''])} + index_pages.select{|p|!p.is_a?(RemotePage)}.each{|p|deps.merge(p.local_depends[''])} @depends = { + '' => deps, "#{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"]), } diff --git a/lib/page_local.rb b/lib/page_local.rb index 5b2af3b..ad4e970 100644 --- a/lib/page_local.rb +++ b/lib/page_local.rb @@ -8,10 +8,12 @@ require 'license' require 'page' require 'pandoc' require 'person' +require 'sitegen' class LocalPage < Page def initialize(infile) @infile = infile + Sitegen::add(self) end # Some of this code looks a little weird because it is @@ -103,6 +105,7 @@ class LocalPage < Page if @depends.nil? basename = local_infile.sub(/^src/, 'out').sub(/\.[^\/.]*$/, '') @depends = { + '' => Set[local_infile], "#{basename}.html" => Set[local_infile, "tmpl/page.html.erb"], #"#{basename}.atom" => Set[local_infile, "tmpl/page.atom.erb"] } diff --git a/lib/sitegen.rb b/lib/sitegen.rb index e69de29..f565d20 100644 --- a/lib/sitegen.rb +++ b/lib/sitegen.rb @@ -0,0 +1,27 @@ +# coding: utf-8 +require 'set' + +module Sitegen + def self.init + @set = Set[] + @mk = {} + end + def self.add(page) + @set.add(page) + end + def self.pages + @set + end + def self.want(filename) + page = pages.select{|page|page.local_depends.keys.include?(filename)}.first + @mk[filename] = page + end + def self.Makefile() + str = '' + str += "all: #{@mk.keys.sort.join(' ')}\n" + @mk.each do |filename, page| + str += "#{filename}: #{page.local_depends[filename].sort.join(' ')}\n" + end + return str + end +end -- cgit v1.2.3