summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xhyde.rb69
1 files changed, 55 insertions, 14 deletions
diff --git a/hyde.rb b/hyde.rb
index 81e2402..1914754 100755
--- a/hyde.rb
+++ b/hyde.rb
@@ -17,7 +17,7 @@ OptionParser.new do |opt|
|o| options[:master] = o
}
opt.on("-n", "--page-name NAME", "page name") {
- |o| options[:pageName] = o
+ |o| options[:pageNames] = o
}
end.parse!
@@ -29,14 +29,16 @@ class Page
attr_reader :description
attr_reader :date
attr_reader :classes
+ attr_reader :category
- def initialize title, pageFileName, pageName, description, date, classes
+ def initialize title, pageFileName, pageNames, description, date, classes, category
@title = title
@pageFileName = pageFileName
- @pageName = pageName
+ @pageNames = pageNames
@description = description
@date = date
@classes = classes
+ @category = category
end
def render path
@@ -53,7 +55,7 @@ def listarticles(path, max)
config = YAML.load_file(file + '.config')
file["rhtml"] = "html"
date = Date.parse(file.gsub(/.*\/(.*)_.*/, '\1'))
- pages.append(Page.new(config['title'], file, nil, config['description'], date, config['classes']))
+ pages.append(Page.new(config['title'], file, nil, config['description'], date, config['classes'], nil))
max = max - 1
if (max == 0)
break
@@ -64,22 +66,61 @@ def listarticles(path, max)
return pages
end
-if(!File.exist?(options[:fileName] + '.config'))
+if(!File.exist?(options[:fileName] + '.config') && !options[:fileName].end_with?("tmpl"))
puts 'Cannot find: ' + options[:fileName] + '.config'
exit -1
end
-config = YAML.load_file(options[:fileName] + '.config')
+if(File.exist?(options[:fileName] + '.config'))
+ config = YAML.load_file(options[:fileName] + '.config')
-title = config['title']
-pageName = config['pageName']
-description = config['description']
-classes = config['classes']
+ if(config != nil)
+ title = config['title']
+ pageNames = config['pageNames']
+ description = config['description']
+ classes = config['classes']
+ master = config['master']
+ category = config['category']
+ end
+end
+
+page = Page.new(title, options[:fileName], pageNames, description, nil, classes, category)
+
+if (options[:master] != nil)
+ master = options[:master]
+end
+
+if (options[:master] == nil && master == nil)
+ master = "master.rhtml"
+end
-page = Page.new(title, options[:fileName], pageName, description, nil, classes)
+if (master.kind_of?(Array))
+ i = 0
+ filesToDelete = Array.new
+ fileName = nil
+ master.each { |m|
+ fileName = options[:fileName] + "." + i.to_s + ".tmp";
+ filesToDelete.append(fileName)
+ output = File.open(fileName, "w")
+ output << page.render(m)
+ page = Page.new(title, fileName, pageNames, description, nil, classes, category)
+ output.close
+ i = i + 1
+ }
+
+ if (fileName != nil)
+ output = File.open(fileName)
+ puts output.read
+ output.close
+ end
+
+ filesToDelete.each { |f|
+ File.delete(f) if File.exist?(f)
+ }
-if options[:master] == nil
- puts page.render("master.rhtml")
else
- puts page.render(options[:master])
+ puts page.render(master)
end
+
+
+