diff options
Diffstat (limited to 'hyde.rb')
-rwxr-xr-x | hyde.rb | 34 |
1 files changed, 32 insertions, 2 deletions
@@ -3,6 +3,7 @@ require "erb" require "optparse" require "yaml" +require 'date' options = {} OptionParser.new do |opt| @@ -23,10 +24,19 @@ end.parse! #puts options class Page - def initialize title, pageFileName, pageName + attr_reader :title + attr_reader :pageFileName + attr_reader :description + attr_reader :date + attr_reader :classes + + def initialize title, pageFileName, pageName, description, date, classes @title = title @pageFileName = pageFileName @pageName = pageName + @description = description + @date = date + @classes = classes end def render path @@ -36,6 +46,24 @@ class Page end end +def listarticles(path, max) + pages = Array.new + Dir.glob(path).each { |file| + if (file.end_with?(".rhtml") && File.file?(file)) + 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'])) + max = max - 1 + if (max == 0) + break + end + end + } + + return pages +end + if(!File.exist?(options[:fileName] + '.config')) puts 'Cannot find: ' + options[:fileName] + '.config' exit -1 @@ -45,8 +73,10 @@ config = YAML.load_file(options[:fileName] + '.config') title = config['title'] pageName = config['pageName'] +description = config['description'] +classes = config['classes'] -page = Page.new(title, options[:fileName], pageName) +page = Page.new(title, options[:fileName], pageName, description, nil, classes) if options[:master] == nil puts page.render("master.rhtml") |