From a35c64dddf69a0d90223800764e6b9a5e8a6dc68 Mon Sep 17 00:00:00 2001 From: Leah Neukirchen Date: Thu, 18 May 2017 15:46:22 +0200 Subject: add JSON Feed --- template/front.ht | 1 + template/json.ht | 23 +++++++++++++++++++++++ trivium.rb | 4 ++++ 3 files changed, 28 insertions(+) create mode 100644 template/json.ht diff --git a/template/front.ht b/template/front.ht index 876f28d..77d8eee 100644 --- a/template/front.ht +++ b/template/front.ht @@ -6,6 +6,7 @@ + diff --git a/template/json.ht b/template/json.ht new file mode 100644 index 0000000..9ad93ca --- /dev/null +++ b/template/json.ht @@ -0,0 +1,23 @@ +$ require 'json' +$ f = { +$ "version" => "https://jsonfeed.org/version/1", +$ "title" => "Trivium", +$ "home_page_url" => "http://chneukirchen.org/trivium/", +$ "feed_url" => "http://chneukirchen.org/trivium/index.json", +$ "favicon" => "http://chneukirchen.org/trivium/trivium.ico", +$ "author" => { +$ "name" => "Leah Neukirchen", +$ "url" => "http://chneukirchen.org/", +$ }, +$ "items" => self[:entries].map { |entry| +$ { +$ "id" => "tag:chneukirchen.org,2008:trivium-#{entry[:id]}", +$ "url" => "http://chneukirchen.org/trivium/#{entry[:id]}", +$ "title" => entry[:title], +$ "date_published" => entry[:date].iso8601, +$ "date_modified" => entry[:updated].iso8601, +$ "content_html" => format(entry) +$ } +$ } +$ } +$:{JSON.pretty_generate f} diff --git a/trivium.rb b/trivium.rb index bbb43d1..3ef8020 100644 --- a/trivium.rb +++ b/trivium.rb @@ -168,5 +168,9 @@ dep "html/index.atom", "template/atom.ht", *d do |dst| File.write(dst, template("template/atom.ht", :entries => feed, :time => Time.now)) end +dep "html/index.json", "template/json.ht", *d do |dst| + File.write(dst, template("template/json.ht", + :entries => feed, :time => Time.now)) +end system "rsync -r data/ html" -- cgit 1.4.1