From c814d191e63d0f175e5f07e1d8608132b8fb2086 Mon Sep 17 00:00:00 2001 From: Alessandro Iezzi Date: Mon, 27 Dec 2021 19:39:41 +0100 Subject: Add method to list articles and extend Page class --- hyde.rb | 34 ++++++++++++++++++++++++++++++++-- 1 file 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") -- cgit v1.2.3