diff options
-rwxr-xr-x | hyde.rb | 69 |
1 files changed, 55 insertions, 14 deletions
@@ -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 + + + |