aboutsummaryrefslogtreecommitdiff
path: root/hyde.rb
diff options
context:
space:
mode:
Diffstat (limited to 'hyde.rb')
-rwxr-xr-xhyde.rb34
1 files changed, 32 insertions, 2 deletions
diff --git a/hyde.rb b/hyde.rb
index 3adfce0..81e2402 100755
--- a/hyde.rb
+++ b/hyde.rb
@@ -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")