@@ 1,8 1,10 @@
require "markd"
require "./gmi_renderer"
require "./extract_jekyll_front_matter"
+require "./templates"
require "map_parallel"
require "option_parser"
+require "crustache"
posts_dir = "."
@@ 26,7 28,7 @@ def g(matched, field)
return 0
end
-Dir.new(posts_dir).entries
+entries_list = Dir.new(posts_dir).entries
.select! { |x| /\.(md|markdown)$/ =~ x }
.map_parallel do |fname|
entry = File.read(Path.new(posts_dir, fname))
@@ 43,8 45,21 @@ Dir.new(posts_dir).entries
g(matched_publication_date, "day"))
{fname, front_matter, article_date, rendered}
end
- .each do |fname, front_matter, article_date, rendered|
- puts "======= #{fname} (#{article_date}) : #{front_matter["title"]?} =======\n"
- puts "#{front_matter}\n"
- puts "#{rendered}\n"
+ .sort { |a, b| b[2] <=> a[2] } # newest to oldest
+ .map do |fname, front_matter, article_date, rendered|
+ {
+ "url" => fname,
+ "title" => front_matter["title"],
+ "year" => article_date.year,
+ "month" => article_date.month,
+ "day" => article_date.day,
+ "rendered" => rendered,
+ }
end
+
+model = {
+ "entries" => entries_list,
+}
+template = Crustache.parse front_matter_tpl()
+
+puts Crustache.render template, model
@@ 0,0 1,15 @@
+def front_matter_tpl
+ tpl = <<-FRONT_MATTER_TPL
+# fleg gemlog
+
+This is basically a Gemini version of my blog:
+
+=> https://blog.fl9.eu/
+
+## Gemlog entries
+
+{{#entries}}
+=> {{url}} {{year}}-{{month}}-{{day}} - {{title}}
+{{/entries}}
+FRONT_MATTER_TPL
+end