2022-07-31 22:25:15 -04:00
<!-- % PROCESS 'shared - avatar.tpl.html' % -->
2022-08-01 20:19:44 -04:00
<!-- % PROCESS 'shared - utils.tpl.html' % -->
2022-09-18 16:23:35 -04:00
<!-- % PROCESS 'shared - listen - now.tpl.html' % -->
2023-02-24 18:58:56 -05:00
<!-- % PROCESS 'shared - show - transcript.tpl.html' % -->
2022-11-10 22:14:55 -05:00
<!-- % PROCESS 'shared - call_for_shows.tpl.html' % -->
2025-04-03 07:22:35 +01:00
<!-- % PROCESS "queries - index.tpl.html" % -->
2023-03-19 22:51:21 +11:00
<!-- % MACRO tidy_notes(all_lines) BLOCK % -->
<!-- % lines = all_lines % -->
<!-- % after_html = all_lines % -->
<!-- % img_re = '(?six)^(.*?)\<img ([^\>]+\>)(.+)$' % -->
<!-- % lazy_re = '(?i)loading="lazy"' % -->
<!-- % WHILE (matches = lines.match(img_re)) % -->
2023-10-29 17:28:04 +00:00
<!-- % img_tag = matches.1 % -->
<!-- % after_html = matches.2 % -->
<!-- % matches.0 % -->
<!-- % IF (img_tag.search(lazy_re)) % -->
2023-03-19 22:51:21 +11:00
< img < ! -- % img_tag % -- >
2023-10-29 17:28:04 +00:00
<!-- % ELSE % -->
2023-03-19 22:51:21 +11:00
< img loading = "lazy" < ! -- % img_tag % -- >
2023-10-29 17:28:04 +00:00
<!-- % END % -->
<!-- % lines = after_html % -->
2023-03-19 22:51:21 +11:00
<!-- % END % -->
<!-- % after_html % -->
<!-- % END % -->
2022-09-05 20:26:12 -04:00
<!-- % days_till_next_episode = 0 % -->
2025-04-03 07:22:35 +01:00
<!-- % USE DBI(constants.driver) % -->
2022-09-05 20:26:12 -04:00
<!-- % USE date % -->
<!-- % calc = date.calc % -->
2023-11-17 18:23:22 +00:00
<!-- % episodes = DBI.query(query_next_available_episode).get_all() % -->
<!-- % last_date = episodes.0.date.split(' - ') % -->
2023-10-29 17:28:04 +00:00
<!-- % offset = (calc.Day_of_Week(last_date.0,last_date.1,last_date.2) == 5 ? 3 : 1) % -->
<!-- % slot_date = calc.Add_Delta_Days(last_date.0,last_date.1,last_date.2,offset) % -->
<!-- % now = calc.Today() % -->
<!-- % days_till_next_episode = calc.Delta_Days(now.0,now.1,now.2,slot_date.0,slot_date.1,slot_date.2) % -->
2022-07-18 18:25:25 -04:00
<!-- % delta = date.calc.N_Delta_YMD(2005,9,19, date.format(date.now, '%Y'),date.format(date.now, '%m'),date.format(date.now, '%d')) % -->
2025-07-15 21:06:33 -04:00
< section id = "welcome" >
2026-01-29 21:01:40 -05:00
< p > <!-- % make_sfw(is_sfw, "Hobby", "Hacker") % --> Public Radio is a technology focused podcast that releases shows every weekday Monday to Friday. Our shows are produced by listeners like you and can be on any topic that is of interest to <!-- % make_sfw(is_sfw, "hobbyists", "hackers, hobbyists") % --> , makers, etc. We are a welcoming community that offers positive feedback and encourages respectful debate.< / p >
2026-01-01 10:28:03 +00:00
<!-- % PROCESS 'content - index - announcement.tpl.html' % -->
2025-07-15 21:06:33 -04:00
< div id = "call_for_shows" >
<!-- % display_call_for_shows() % -->
< / div >
< / section >
< section id = "podcast_lane" >
2025-08-03 22:40:16 -04:00
< header > < h2 > The Podcast< / h2 > < / header >
2025-07-15 21:06:33 -04:00
< div class = "lane" >
< a class = "lane-button" href = "<!--% absolute_path(baseurl) %-->about.html#recording_a_podcast" >
2025-08-22 12:17:37 +01:00
< img src = "<!--% absolute_path(baseurl) %-->images/icons/mic-fill.svg" alt = "" height = "110" >
< p > Record< / p >
2025-07-15 21:06:33 -04:00
< / a >
2025-08-03 22:27:13 -04:00
< br class = "no-css" >
2025-10-09 21:33:57 -04:00
< a class = "lane-button" href = "<!--% hub_baseurl %-->calendar.php" >
2025-08-22 12:17:37 +01:00
< img src = "<!--% absolute_path(baseurl) %-->images/icons/calendar-2-line.svg" alt = "" height = "110" >
< p > Schedule< / p >
2025-07-15 21:06:33 -04:00
< / a >
2025-08-03 22:27:13 -04:00
< br class = "no-css" >
< a class = "lane-button" href = "<!--% absolute_path(baseurl) %-->syndication.html" >
2025-08-22 12:17:37 +01:00
< img src = "<!--% absolute_path(baseurl) %-->images/icons/rss-fill.svg" alt = "" height = "110" >
< p > Subscribe< / p >
2025-07-15 21:06:33 -04:00
< / a >
2025-08-03 22:27:13 -04:00
< br class = "no-css" >
< a class = "lane-button" href = "<!--% absolute_path(baseurl) %-->eps/index.html" >
2025-08-22 12:17:37 +01:00
< img src = "<!--% absolute_path(baseurl) %-->images/icons/volume-up-fill.svg" alt = "" height = "110" >
< p > Listen< / p >
2025-07-15 21:06:33 -04:00
< / a >
< / div >
< / section >
< section id = "project_lane" >
2025-08-03 22:40:16 -04:00
< header > < h2 > The Project< / h2 > < / header >
2025-07-15 21:06:33 -04:00
< div class = "lane" >
< a class = "lane-button" href = "<!--% absolute_path(baseurl) %-->correspondents/index.html" >
2025-08-22 12:17:37 +01:00
< img src = "<!--% absolute_path(baseurl) %-->images/icons/user-fill.svg" alt = "" height = "110" >
2025-09-04 21:16:38 -04:00
< p > Hosts< / p >
2025-07-15 21:06:33 -04:00
< / a >
2025-08-03 22:27:13 -04:00
< br class = "no-css" >
2025-07-15 21:06:33 -04:00
< a class = "lane-button" href = "<!--% absolute_path(baseurl) %-->series/index.html" >
2025-08-22 12:17:37 +01:00
< img src = "<!--% absolute_path(baseurl) %-->images/icons/stack-fill.svg" alt = "" height = "110" >
< p > Series< / p >
2025-07-15 21:06:33 -04:00
< / a >
2025-08-03 22:27:13 -04:00
< br class = "no-css" >
< a class = "lane-button" href = "<!--% absolute_path(baseurl) %-->about.html" >
2025-08-22 12:17:37 +01:00
< img src = "<!--% absolute_path(baseurl) %-->images/icons/question-mark.svg" alt = "" height = "110" >
< p > About< / p >
2025-07-15 21:06:33 -04:00
< / a >
2025-08-05 22:44:15 -04:00
< br class = "no-css" >
< a class = "lane-button" href = "<!--% absolute_path(baseurl) %-->search.html" >
2025-08-22 12:17:37 +01:00
< img src = "<!--% absolute_path(baseurl) %-->images/icons/search.svg" alt = "" height = "110" >
< p > Search< / p >
2025-08-05 22:44:15 -04:00
< / a >
2025-07-15 21:06:33 -04:00
< / div >
< / section >
2025-07-16 20:48:51 -04:00
< section id = "latest_lane" class = "lane" >
2022-07-31 23:09:00 -04:00
<!-- % PROCESS 'shared - episode - summary.tpl.html' % -->
2025-07-15 21:45:31 -04:00
< section id = "latest_shows" >
2025-08-03 22:40:16 -04:00
< header > < h2 > Latest Shows< / h2 > < / header >
2023-03-05 02:07:03 +11:00
<!-- % host_cnt = 0 % -->
2025-08-22 23:51:52 -04:00
< dl >
2022-11-27 13:54:14 -05:00
<!-- % FOREACH latest_episodes IN DBI.query(query_latest_episodes)
2022-07-02 17:10:27 -04:00
%-->
2025-11-07 20:22:15 -05:00
< dt > < a href = "<!--% absolute_path(baseurl) %-->eps/hpr<!--% zero_pad_left(latest_episodes.id) %-->/index.html" > hpr<!-- % latest_episodes.id % --> (<!-- % latest_episodes.date % --> ) :: <!-- % latest_episodes.title % --> < / a > by < a href = "<!--% absolute_path(baseurl) %-->correspondents/<!--% zero_pad_left(latest_episodes.hostid) %-->.html" > <!-- % latest_episodes.host % --> < / a > < / dt >
2025-08-22 23:51:52 -04:00
< dd >
2025-08-03 23:30:15 -04:00
<!-- % latest_episodes.summary % -->
2025-08-22 23:51:52 -04:00
< / dd >
2023-03-05 02:07:03 +11:00
<!-- % host_cnt = host_cnt + 1 % -->
2022-07-01 22:07:06 -04:00
<!-- % END % -->
2025-08-22 23:51:52 -04:00
< / dl >
2025-12-02 22:48:52 -05:00
< p > < a href = "<!--% absolute_path(baseurl) %-->eps/index.html" > More Episodes…< / a > < / p >
2025-07-16 10:42:05 -04:00
< / section >
< section id = "latest_comments" >
2025-08-03 22:40:16 -04:00
< header > < h2 > Latest Comments< / h2 > < / header >
2025-08-22 23:51:52 -04:00
< dl >
2025-07-16 10:42:05 -04:00
<!-- % FOREACH item IN DBI.query('
WITH episode_comment_rank AS (
SELECT
comments.eps_id
, comments.id as comment_id
, comments.comment_author_name
, comments.comment_timestamp
, comments.comment_title
, RANK() OVER (PARTITION BY eps_id ORDER BY id ) AS comment_number
FROM comments
)
SELECT
episode_comment_rank.*
, hosts.host
, eps.title AS episode_title
, eps.date AS episode_date
FROM episode_comment_rank
INNER JOIN eps
ON episode_comment_rank.eps_id = eps.id
INNER JOIN hosts
ON eps.hostid = hosts.hostid
ORDER BY episode_comment_rank.comment_timestamp DESC
LIMIT 10;
')
2022-07-03 22:47:59 -04:00
%-->
2025-08-22 23:51:52 -04:00
< dt > < a href = "<!--% absolute_path(baseurl) %-->eps/hpr<!--% zero_pad_left(item.eps_id) %-->/index.html#comment_<!--% item.comment_id%-->" > Comment <!-- % item.comment_number % --> : <!-- % item.comment_author_name % --> on <!-- % item.comment_timestamp % --> : "<!-- % item.comment_title % --> "< / a > < / dt >
< dd > on hpr<!-- % item.eps_id % --> (<!-- % item.episode_date % --> ) "<!-- % item.episode_title % --> " by <!-- % item.host % --> < / dd >
2022-07-03 22:47:59 -04:00
<!-- % END % -->
2025-08-22 23:51:52 -04:00
< / dl >
2025-12-02 22:48:52 -05:00
< p > < a href = "<!--% absolute_path(baseurl) %-->comments_viewer.html" > More Comments…< / a > < / p >
2025-07-15 21:06:33 -04:00
< / section >
2025-07-24 22:12:55 -04:00
< / section >