diff options
author | 2021-12-27 19:39:41 +0100 | |
---|---|---|
committer | 2021-12-27 19:39:41 +0100 | |
commit | c814d191e63d0f175e5f07e1d8608132b8fb2086 (patch) | |
tree | bbcb7ae246ff5e01ed8673c968b2c660d8f39164 | |
parent | d1d31368e30f176321cfee61a58b8f4b7aeb7741 (diff) | |
download | hyde-c814d191e63d0f175e5f07e1d8608132b8fb2086.tar.gz hyde-c814d191e63d0f175e5f07e1d8608132b8fb2086.zip |
Add method to list articles and extend Page class
-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") |