2 Commits

Author SHA1 Message Date
81b23e387d Fix layout of episode nav links on small displays
Reduce horizontal padding on small displays to prevent
navigation from overflowing width of screen.
2025-11-09 08:57:33 -05:00
dda9141603 Restore hightlighting to show notes preformatted text
This was lost in the transition to the new website design.
2025-11-09 08:56:52 -05:00
22 changed files with 20 additions and 128 deletions

View File

@@ -1 +0,0 @@
ALTER TABLE twat_eps RENAME TO twt_eps;

View File

@@ -403,9 +403,6 @@ article > p,
font-size: var(--default-header-4-font-size); font-size: var(--default-header-4-font-size);
margin-left: 22px; margin-left: 22px;
} }
.lane.stack > article > footer {
margin-bottom: 1rem;
}
a.lane-button { a.lane-button {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@@ -736,13 +733,10 @@ fieldset > table td input[type="radio"] {
padding: 0; padding: 0;
} }
.series-description { .series-description {
margin: 0 0 1rem 0; margin: 0;
padding: 0; padding: 0;
font-style: italic; font-style: italic;
} }
.series-desciption > *:last-child {
margin-bottom: 0;
}
.sr-only { .sr-only {
position: absolute; position: absolute;
width: 1px; width: 1px;
@@ -758,14 +752,11 @@ fieldset > table td input[type="radio"] {
} }
#show_notes pre #show_notes pre
{ {
overflow: auto;
}
#show_notes code {
display: inline-block;
background-color: var(--show-notes-pre-background); background-color: var(--show-notes-pre-background);
border: 1px solid #ddd; border: 1px solid #ddd;
overflow: scroll;
padding: 0.1em 0; padding: 0.1em 0;
} }
nav.episodes { nav.episodes {
color: var(--background-primary); color: var(--background-primary);
font-size: 0.9em; font-size: 0.9em;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -171,15 +171,3 @@ media_file_extension: spx
[comments] [comments]
root_template: rss-comments.tpl.xml root_template: rss-comments.tpl.xml
filename: comments.rss filename: comments.rss
[correspondent_m3u]
root_template: m3u.tpl.m3u8
content: m3u-correspondent.tpl.m3u8
filename: correspondents/[id]/playlist.m3u8
multipage: true
[series_episodes_m3u]
root_template: m3u.tpl.m3u8
content: m3u-series_episodes.tpl.m3u8
filename: series/[id].m3u8
multipage: true

View File

@@ -29,10 +29,9 @@
<p><label>email:</label> <u><!--% this_host.email %--></u></p> <p><label>email:</label> <u><!--% this_host.email %--></u></p>
<div><label>profile:</label> <!--% this_host.profile %--></div> <div><label>profile:</label> <!--% this_host.profile %--></div>
<p><label>episodes:</label> <strong><!--% hpr_show_count + twt_show_count %--></strong></p> <p><label>episodes:</label> <strong><!--% hpr_show_count + twt_show_count %--></strong></p>
<p><a href="<!--% absolute_url(baseurl,'//correspondents') %-->/<!--% zero_pad_left(this_host.hostid) %-->/playlist.m3u8">Download the M3U playlist</a>.</p>
</div> </div>
</div> </div>
<div id="episodes" class="lane stack"> <div class="lane stack">
<!--% FOREACH hpr_show IN hpr_shows; %--> <!--% FOREACH hpr_show IN hpr_shows; %-->
<article> <article>
<!--% show_summary(hpr_show, 'hide_host') %--> <!--% show_summary(hpr_show, 'hide_host') %-->

View File

@@ -18,7 +18,7 @@
from hosts as h from hosts as h
inner join (select hostid, max(date) as date from eps group by hostid) as e inner join (select hostid, max(date) as date from eps group by hostid) as e
on h.hostid = e.hostid on h.hostid = e.hostid
order by h.host COLLATE NOCASE asc' order by h.host'
) %--> ) %-->
<tr class="lane"> <tr class="lane">
<td><!--% get_avatar(host.hostid, host.host, host_cnt > 8) %--></td> <td><!--% get_avatar(host.hostid, host.host, host_cnt > 8) %--></td>

View File

@@ -61,11 +61,11 @@ Subscribe to the comments <a href="<!--% absolute_path(baseurl) %-->comments.rss
<h2>Leave Comment</h2> <h2>Leave Comment</h2>
<p> <p>
<strong>Note to Verbose Commenters</strong><br /> <strong>Note to Verbose Commenters</strong><br />
If you can't fit everything you want to say in the comment below then you really should <a href="<!--% absolute_url(baseurl) %-->../../about.html#so_you_want_to_record_a_podcast">record</a> a response show instead. If you can't fit everything you want to say in the comment below then you really should <a href="<!--% absolute_url(baseurl) %-->about.html#so_you_want_to_record_a_podcast">record</a> a response show instead.
</p> </p>
<p> <p>
<strong>Note to Spammers</strong><br /> <strong>Note to Spammers</strong><br />
All comments are moderated. All links are checked by humans. We strip out all html. Feel free to <a href="<!--% absolute_url(baseurl) %-->../../about.html#so_you_want_to_record_a_podcast">record</a> a show about yourself, or your industry, or any other topic we may find interesting. <em>We also check shows for spam :)</em>. All comments are moderated. All links are checked by humans. We strip out all html. Feel free to <a href="<!--% absolute_url(baseurl) %-->about.html#so_you_want_to_record_a_podcast">record</a> a show about yourself, or your industry, or any other topic we may find interesting. <em>We also check shows for spam :)</em>.
</p> </p>
<form method="POST" action="<!--% hub_baseurl %-->comment_confirm.php"> <form method="POST" action="<!--% hub_baseurl %-->comment_confirm.php">
<fieldset> <fieldset>

View File

@@ -29,7 +29,7 @@
hosts.hostid, hosts.hostid,
hosts.host, hosts.email, hosts.local_image, hosts.host, hosts.email, hosts.local_image,
miniseries.name AS series, miniseries.id AS seriesid miniseries.name AS series, miniseries.id AS seriesid
FROM twt_eps as eps FROM twat_eps as eps
INNER JOIN hosts ON eps.hostid = hosts.hostid INNER JOIN hosts ON eps.hostid = hosts.hostid
INNER JOIN miniseries ON eps.series = miniseries.id INNER JOIN miniseries ON eps.series = miniseries.id
ORDER BY eps.id DESC ORDER BY eps.id DESC

View File

@@ -1,19 +1 @@
<!--% PROCESS 'shared-utils.tpl.html' %--> <!--% PROCESS 'shared-utils.tpl.html' %-->
<div class="lane stack">
<article>
<header>
<h2 class="title"><a href="/eps/hpr3246/index.html">The Fourteenth Annual 26 Hour New Year's Eve Show</a> </h2>
</header>
<h3>Welcome every <a href="https://www.timeanddate.com/counters/multicountdown.html">TimeZone</a>!</h3>
<p>
<em>If you keep talking, we'll keep recording.</em>
</p>
<p>For those who don't know, on New Year's Eve 2025-12-31 10:00 UTC (5:00 AM EST), we will have a recording going on the HPR Mumble server for anyone to come on and say "Happy New Year" and talk about whatever they want.
We will leave the recording going until at least 2026-01-01 12:00 UTC (7:00 AM EST), and keep recording until the conversation stops.</p>
<p>
So please stop in. Say "Hi" and maybe join in the conversation with other HPR listeners and contributors. It's always a good time!!<br>
<a href="https://hackerpublicradio.org/eps/hpr3246/index.html">More Information…</a>
</p>
</article>
</div>

View File

@@ -3,6 +3,7 @@
<!--% PROCESS 'shared-listen-now.tpl.html' %--> <!--% PROCESS 'shared-listen-now.tpl.html' %-->
<!--% PROCESS 'shared-show-transcript.tpl.html' %--> <!--% PROCESS 'shared-show-transcript.tpl.html' %-->
<!--% PROCESS 'shared-call_for_shows.tpl.html' %--> <!--% PROCESS 'shared-call_for_shows.tpl.html' %-->
<!--% INCLUDE 'content-index-announcement.tpl.html' %-->
<!--% PROCESS "queries-index.tpl.html" %--> <!--% PROCESS "queries-index.tpl.html" %-->
<!--% MACRO tidy_notes(all_lines) BLOCK %--> <!--% MACRO tidy_notes(all_lines) BLOCK %-->
<!--% lines = all_lines %--> <!--% lines = all_lines %-->
@@ -36,7 +37,6 @@
<!--% delta = date.calc.N_Delta_YMD(2005,9,19, date.format(date.now, '%Y'),date.format(date.now, '%m'),date.format(date.now, '%d')) %--> <!--% delta = date.calc.N_Delta_YMD(2005,9,19, date.format(date.now, '%Y'),date.format(date.now, '%m'),date.format(date.now, '%d')) %-->
<section id="welcome"> <section id="welcome">
<p>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 hackers, makers, hobbyists, etc. We are a welcoming community that offers positive feedback and encourages respectful debate.</p> <p>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 hackers, makers, hobbyists, etc. We are a welcoming community that offers positive feedback and encourages respectful debate.</p>
<!--% INCLUDE 'content-index-announcement.tpl.html' %-->
<div id="call_for_shows"> <div id="call_for_shows">
<!--% display_call_for_shows() %--> <!--% display_call_for_shows() %-->
</div> </div>
@@ -104,7 +104,6 @@
<!--% host_cnt = host_cnt + 1 %--> <!--% host_cnt = host_cnt + 1 %-->
<!--% END %--> <!--% END %-->
</dl> </dl>
<p><a href="<!--% absolute_path(baseurl) %-->eps/index.html">More Episodes…</a></p>
</section> </section>
<section id="latest_comments"> <section id="latest_comments">
<header><h2>Latest Comments</h2></header> <header><h2>Latest Comments</h2></header>
@@ -139,6 +138,5 @@
<dd>on hpr<!--% item.eps_id %--> (<!--% item.episode_date %-->) "<!--% item.episode_title %-->" by <!--% item.host %--></dd> <dd>on hpr<!--% item.eps_id %--> (<!--% item.episode_date %-->) "<!--% item.episode_title %-->" by <!--% item.host %--></dd>
<!--% END %--> <!--% END %-->
</dl> </dl>
<p><a href="<!--% absolute_path(baseurl) %-->comments_viewer.html">More Comments…</a></p>
</section> </section>
</section> </section>

View File

@@ -13,7 +13,6 @@
<li>Date of earliest show: <!--% series.earliest_show %--></li> <li>Date of earliest show: <!--% series.earliest_show %--></li>
<li>Date of latest show: <!--% series.latest_show %--></li> <li>Date of latest show: <!--% series.latest_show %--></li>
<li>Series RSS feeds: <a href="<!--% absolute_path(baseurl) %-->hpr_ogg_rss.php?series=<!--% series.id %-->">ogg</a>, <a href="<!--% absolute_path(baseurl) %-->hpr_spx_rss.php?series=<!--% series.id %-->">spx</a>, <a href="<!--% absolute_path(baseurl) %-->hpr_mp3_rss.php?series=<!--% series.id %-->">mp3</a></li> <li>Series RSS feeds: <a href="<!--% absolute_path(baseurl) %-->hpr_ogg_rss.php?series=<!--% series.id %-->">ogg</a>, <a href="<!--% absolute_path(baseurl) %-->hpr_spx_rss.php?series=<!--% series.id %-->">spx</a>, <a href="<!--% absolute_path(baseurl) %-->hpr_mp3_rss.php?series=<!--% series.id %-->">mp3</a></li>
<li><a href="<!--% absolute_url(baseurl,'//series') %-->/<!--% zero_pad_left(series.id) %-->.m3u8">Download the M3U playlist</a></li>
</ul> </ul>
<div class="series-description"><!--% series.description %--></div> <div class="series-description"><!--% series.description %--></div>
</article> </article>

View File

@@ -13,7 +13,6 @@
<li>Date of earliest show: <!--% series.earliest_show %--></li> <li>Date of earliest show: <!--% series.earliest_show %--></li>
<li>Date of latest show: <!--% series.latest_show %--></li> <li>Date of latest show: <!--% series.latest_show %--></li>
<li>Series RSS feeds: <a href="<!--% absolute_path(baseurl) %-->hpr_ogg_rss.php?series=<!--% series.id %-->&full=1&gomax=1">ogg</a>, <a href="<!--% absolute_path(baseurl) %-->hpr_spx_rss.php?series=<!--% series.id %-->&full=1&gomax=1">spx</a>, <a href="<!--% absolute_path(baseurl) %-->hpr_mp3_rss.php?series=<!--% series.id %-->&full=1&gomax=1">mp3</a></li> <li>Series RSS feeds: <a href="<!--% absolute_path(baseurl) %-->hpr_ogg_rss.php?series=<!--% series.id %-->&full=1&gomax=1">ogg</a>, <a href="<!--% absolute_path(baseurl) %-->hpr_spx_rss.php?series=<!--% series.id %-->&full=1&gomax=1">spx</a>, <a href="<!--% absolute_path(baseurl) %-->hpr_mp3_rss.php?series=<!--% series.id %-->&full=1&gomax=1">mp3</a></li>
<li><a href="<!--% absolute_url(baseurl,'//series') %-->/<!--% zero_pad_left(series.id) %-->.m3u8">Download the M3U playlist</a></li>
</ul> </ul>
<p><em><!--% series.description %--></em></p> <p><em><!--% series.description %--></em></p>
<section id="series_episodes" class="lane stack"> <section id="series_episodes" class="lane stack">

View File

@@ -6,23 +6,23 @@
<!--% query_episodes = DBI.prepare(' <!--% query_episodes = DBI.prepare('
WITH episode_maxmin AS ( WITH episode_maxmin AS (
SELECT MAX(id) AS \'latest\', MIN(id) AS \'earliest\', ? AS \'id\' SELECT MAX(id) AS \'latest\', MIN(id) AS \'earliest\', ? AS \'id\'
FROM twt_eps AS eps FROM twat_eps AS eps
), ),
episode_date AS ( episode_date AS (
SELECT eps.date SELECT eps.date
FROM twt_eps AS eps FROM twat_eps AS eps
WHERE eps.id = ? WHERE eps.id = ?
), ),
episode_previous AS ( episode_previous AS (
SELECT MAX(id) AS \'previous\', ? AS \'id\' SELECT MAX(id) AS \'previous\', ? AS \'id\'
FROM twt_eps AS eps FROM twat_eps AS eps
INNER JOIN episode_date INNER JOIN episode_date
ON eps.date < episode_date.date ON eps.date < episode_date.date
WHERE eps.id > 1 WHERE eps.id > 1
), ),
episode_next AS ( episode_next AS (
SELECT MIN(id) AS \'next\', ? AS \'id\' SELECT MIN(id) AS \'next\', ? AS \'id\'
FROM twt_eps AS eps FROM twat_eps AS eps
INNER JOIN episode_date INNER JOIN episode_date
ON eps.date > episode_date.date ON eps.date > episode_date.date
) )
@@ -34,7 +34,7 @@
hosts.hostid, hosts.host, hosts.hostid, hosts.host,
miniseries.name AS \'series\', miniseries.id AS \'seriesid\', miniseries.name AS \'series\', miniseries.id AS \'seriesid\',
miniseries.description AS \'series_description\' miniseries.description AS \'series_description\'
FROM twt_eps AS eps FROM twat_eps AS eps
INNER JOIN hosts ON eps.hostid = hosts.hostid INNER JOIN hosts ON eps.hostid = hosts.hostid
INNER JOIN miniseries ON eps.series = miniseries.id INNER JOIN miniseries ON eps.series = miniseries.id
INNER JOIN episode_maxmin ON eps.id = episode_maxmin.id INNER JOIN episode_maxmin ON eps.id = episode_maxmin.id

View File

@@ -1,7 +0,0 @@
<!--% USE DBI(constants.driver) %-->
<!--% FOREACH host IN DBI.query(
'select h.hostid from hosts as h'
) %-->
,<!--% host.hostid %-->
<!--% END %-->

View File

@@ -1,7 +0,0 @@
<!--% USE DBI(constants.driver, constants.user, constants.password) %-->
<!--% FOREACH series IN DBI.query(
'select s.id from miniseries as s'
) %-->
,<!--% series.id %-->
<!--% END %-->

View File

@@ -1,6 +1,6 @@
<!--% USE DBI(constants.driver) %--> <!--% USE DBI(constants.driver) %-->
<!--% FOREACH episode IN DBI.query( <!--% FOREACH episode IN DBI.query(
'select eps.id from twt_eps AS eps' 'select eps.id from twat_eps AS eps'
) %--> ) %-->
,<!--% episode.id %--> ,<!--% episode.id %-->
<!--% END %--> <!--% END %-->

View File

@@ -1,24 +0,0 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<!--% PROCESS 'queries-correspondent.tpl.html' %-->
<!--% USE DBI(constants.driver) %-->
<!--% results_hpr_shows = DBI.prepare(query_hpr_shows) %-->
<!--% hpr_shows = results_hpr_shows.execute(id); %-->
<!--% FOREACH hpr_show IN hpr_shows; %-->
#EXTINF: <!--% hpr_show.duration %-->,<!--% hpr_show.host %--> - <!--% hpr_show.title %-->
<!--% media_path(hpr_show.id, 'hpr', 'mp3', baseurl, media_baseurl) %-->
<!--% END %-->
<!--% results_hpr_shows = DBI.prepare(query_twt_shows) %-->
<!--% twt_result_status = results_twt_show_count.execute(id); %-->
<!--% twt_shows = results_hpr_shows.execute(id); %-->
<!--% FOREACH hpr_show IN twt_shows; %-->
#EXTINF: <!--% hpr_show.duration %-->,<!--% hpr_show.host %--> - <!--% hpr_show.title %-->
<!--% media_path(hpr_show.id, 'twt', 'mp3', baseurl, media_baseurl) %-->
<!--% END %-->

View File

@@ -1,13 +0,0 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<!--% PROCESS 'queries-series_episodes.tpl.html' %-->
<!--% USE DBI(constants.driver) %-->
<!--% results_hpr_shows = DBI.prepare(query_shows_sql) %-->
<!--% hpr_shows = results_hpr_shows.execute(id); %-->
<!--% FOREACH hpr_show IN hpr_shows; %-->
#EXTINF: <!--% hpr_show.duration %-->,<!--% hpr_show.host %--> - <!--% hpr_show.title %-->
<!--% media_path(hpr_show.id, 'hpr', 'mp3', baseurl, media_baseurl) %-->
<!--% END %-->

View File

@@ -1,2 +0,0 @@
#EXTM3U
<!--% INCLUDE $content %-->

View File

@@ -33,7 +33,7 @@
%--> %-->
<!--% query_twt_show_count = ' <!--% query_twt_show_count = '
SELECT COUNT(id) as Tally SELECT COUNT(id) as Tally
FROM twt_eps AS eps FROM twat_eps AS eps
WHERE eps.hostid = ? WHERE eps.hostid = ?
' '
%--> %-->
@@ -48,7 +48,7 @@
hosts.hostid, hosts.hostid,
hosts.host, hosts.email, hosts.profile, hosts.host, hosts.email, hosts.profile,
miniseries.name AS series, miniseries.id AS seriesid miniseries.name AS series, miniseries.id AS seriesid
FROM twt_eps AS eps FROM twat_eps AS eps
INNER JOIN hosts ON eps.hostid = hosts.hostid INNER JOIN hosts ON eps.hostid = hosts.hostid
INNER JOIN miniseries ON eps.series = miniseries.id INNER JOIN miniseries ON eps.series = miniseries.id
WHERE hosts.hostid = ? WHERE hosts.hostid = ?

View File

@@ -14,24 +14,14 @@
WHERE miniseries.id = ? WHERE miniseries.id = ?
ORDER BY name' ORDER BY name'
%--> %-->
<!--% query_shows_sql = 'WITH <!--% query_shows_sql = 'SELECT
comment_tallies AS (
SELECT
eps_id,
COUNT(eps_id) AS eps_tally
FROM comments
GROUP BY eps_id
)
SELECT
id, date, title, id, date, title,
duration, summary, notes, duration, summary, notes,
explicit, eps.license, tags, explicit, eps.license, tags,
hosts.host, hosts.hostid, hosts.host, hosts.hostid
COALESCE(comment_tallies.eps_tally,0) AS commentsTally
FROM eps FROM eps
INNER JOIN hosts INNER JOIN hosts
ON eps.hostid = hosts.hostid ON eps.hostid = hosts.hostid
LEFT JOIN comment_tallies ON eps.id = comment_tallies.eps_id
WHERE series = ? AND eps.date < date(\'now\', \'+1 days\') WHERE series = ? AND eps.date < date(\'now\', \'+1 days\')
ORDER BY eps.id DESC ORDER BY eps.id DESC
' '

View File

@@ -1 +1 @@
<!--% query_tags = 'SELECT id, tags FROM eps WHERE eps.date <= date(\'now\')' %--> <!--% query_tags = 'SELECT id, tags FROM eps' %-->