From: Ben Sherratt Date: Sun, 28 Dec 2025 10:14:58 +0000 (+0000) Subject: Added JSON feed and links in theme X-Git-Url: https://git.bts.cx/garden.git/commitdiff_plain/b34dec58507593c89ddd7a620c355084c7c79846?hp=1ff3a665663a5095c770cc63c3d09572944b30f1 Added JSON feed and links in theme --- diff --git a/garden.php b/garden.php index e4391e4..e4429e3 100644 --- a/garden.php +++ b/garden.php @@ -521,8 +521,6 @@ function garden_generate_html($output_directory, $content_items) { /////////////////////////////////////////////////////////////////////////////// function garden_generate_atom($output_directory, $content_items) { - $output_items = []; - $recent_items = []; foreach ($content_items as $item) { if ($item->type != GardenItemType::Article) { @@ -543,6 +541,41 @@ function garden_generate_atom($output_directory, $content_items) { garden_write_file(garden_path($output_directory, 'feed.atom'), $html_data); } +function garden_generate_json($output_directory, $content_items) { + $recent_items = []; + foreach ($content_items as $item) { + if ($item->type != GardenItemType::Article) { + continue; + } + + $recent_items[$item->date] = $item; + } + + // Sort by date... + ksort($recent_items); + $recent_items = array_reverse($recent_items); + + $feed = []; + $feed['version'] = 'https://jsonfeed.org/version/1.1'; + $feed['title'] = GARDEN_TEMPLATE_CONSTANTS['site_name']; + $feed['home_page_url'] = garden_site_url('/'); + $feed['feed_url'] = garden_site_url('/feed.json'); + $feed['items'] = []; + + foreach ($recent_items as $item) { + $feed_item = []; + $feed_item['id'] = $item->date + hexdec(hash('crc32', $item->title)); + $feed_item['date_published'] = date(DATE_RFC3339, $item->date); + $feed_item['title'] = $item->title; + $feed_item['content_text'] = 'An update was published.'; + $feed_item['url'] = $item->url; + $feed['items'][] = $feed_item; + } + + $json_data = json_encode($feed); + garden_write_file(garden_path($output_directory, 'feed.json'), $json_data); +} + /////////////////////////////////////////////////////////////////////////////// // Main /////////////////////////////////////////////////////////////////////////////// @@ -556,6 +589,7 @@ function garden() { $post_process_items = garden_generate_html(GARDEN_OUTPUT_DIR, $process_items); garden_make_images($post_process_items); garden_generate_atom(GARDEN_OUTPUT_DIR, $process_items); + garden_generate_json(GARDEN_OUTPUT_DIR, $process_items); } /////////////////////////////////////////////////////////////////////////////// diff --git a/templates/base.php b/templates/base.php index 76d6d00..75cedb2 100644 --- a/templates/base.php +++ b/templates/base.php @@ -13,7 +13,9 @@ + + @@ -38,6 +40,11 @@ + + diff --git a/templates/style/screen.css b/templates/style/screen.css index cb1176c..11e5611 100644 --- a/templates/style/screen.css +++ b/templates/style/screen.css @@ -1,5 +1,5 @@ html { - line-height: 1.15; + line-height: 1.3; -webkit-text-size-adjust:100% } @@ -130,3 +130,12 @@ blockquote { border-radius: 0 0.25rem 0.25rem 0; } +a.feed { + color: #f26522; +} + +a.feed:hover { + background: none !important; + color: #bc4e1b !important; +} +