235 lines
9.3 KiB
Smarty
235 lines
9.3 KiB
Smarty
[%# shownote_template11.tpl 2024-05-07 -%]
|
|
[%# HTML snippet for insertion into the database -%]
|
|
[%# This one uses the new format for the mailing list data, and partitions -%]
|
|
[%# comments into past and current. It also marks comments that don't need -%]
|
|
[%# to be read when -markcomments is selected. It requires make_shownotes >= V0.0.30 -%]
|
|
[%- USE date -%]
|
|
[%- USE pad4 = format('%04d') -%]
|
|
[%- correspondents = "https://hackerpublicradio.org/correspondents"
|
|
mailbase="https://lists.hackerpublicradio.com/pipermail/hpr"
|
|
mailthreads = "$mailbase/$review_year-$review_month/thread.html" -%]
|
|
[%- DEFAULT skip_comments = 0
|
|
mark_comments = 0
|
|
ctext = 0
|
|
ignore_count = 0
|
|
missed_count = 0
|
|
past_count = 0
|
|
-%]
|
|
[%# Embedded CSS. The 'table' and 'hr' settings are always there but the rest is only for if -%]
|
|
[%# we are marking comments -%]
|
|
<style>
|
|
table td.shrink {
|
|
white-space:nowrap
|
|
}
|
|
hr.thin {
|
|
border: 0;
|
|
height: 0;
|
|
border-top: 1px solid rgba(0, 0, 0, 0.1);
|
|
border-bottom: 1px solid rgba(255, 255, 255, 0.3);
|
|
}
|
|
[%- IF mark_comments == 1 %]
|
|
p#ignore, li#ignore {
|
|
background-color: lightgreen;
|
|
color:maroon;
|
|
}
|
|
div#highlight {
|
|
border-style: solid;
|
|
border-color: red;
|
|
padding-right: 20px;
|
|
padding-left: 20px;
|
|
}
|
|
[%- END %]
|
|
</style>
|
|
[%# For the '-mailnotes' option without a file we generate our own inclusion. -%]
|
|
[%# We pretend 'default_mail' is a filename in the calling script. Messy. -%]
|
|
[% BLOCK default_mail -%]
|
|
<a href="[% mailthreads %]" target="_blank">[% mailthreads %]</a>
|
|
[% END -%]
|
|
|
|
<h2>New hosts</h2>
|
|
<p>
|
|
[% IF hosts.size > 0 -%]
|
|
Welcome to our new host[%- hosts.size > 1 ? 's' : '' -%]: <br />
|
|
[%- count = 0 %]
|
|
[%# List the new hosts. If a name contains a comma quote it. -%]
|
|
[%- FOREACH row IN hosts %]
|
|
[%- count = count + 1 %]
|
|
[%- hostname = (row.host.search(',') ? row.host.replace('^(.*)$','"$1"') : row.host) %]
|
|
<a href="[% correspondents %]/[% pad4(row.hostid) %].html" target="_blank">[% hostname %]</a>
|
|
[%- count < hosts.size ? ', ' : '.' %]
|
|
[%- END %]
|
|
[% ELSE -%]
|
|
There were no new hosts this month.
|
|
[% END -%]
|
|
</p>
|
|
|
|
<h2>Last Month's Shows</h2>
|
|
[%# The id 't01' is in the HPR CSS but might give trouble on the IA -%]
|
|
<table id="t01">
|
|
<tr>
|
|
<th>Id</th>
|
|
<th>Day</th>
|
|
<th>Date</th>
|
|
<th>Title</th>
|
|
<th>Host</th>
|
|
</tr>
|
|
[%- FOREACH row IN shows %]
|
|
<tr>
|
|
<td><strong><a href="https://hackerpublicradio.org/eps/hpr[% pad4(row.eps_id) %]/index.html" target="_blank">[% row.eps_id %]</a></strong></td>
|
|
<td>[% date.format(row.date,'%a') %]</td>
|
|
<td class="shrink">[% date.format(row.date,'%Y-%m-%d') %]</td>
|
|
<td><a href="https://hackerpublicradio.org/eps/hpr[% pad4(row.eps_id) %]/index.html" target="_blank">[% row.title %]</a></td>
|
|
<td><a href="[% correspondents %]/[% pad4(row.ho_hostid) %].html" target="_blank">[% row.ho_host FILTER html_entity %]</a></td>
|
|
</tr>
|
|
[%- END %]
|
|
</table>
|
|
|
|
[%# ---------------------------------------------------------------------------------------- -%]
|
|
[%# Skip comments if told to by the caller -%]
|
|
[%- IF skip_comments == 0 -%]
|
|
[%# Handle any missed comments if mark_comments is true -%]
|
|
[%- IF mark_comments == 1 && missed_count > 0 -%]
|
|
<br/><div id="highlight">
|
|
<h2>Missed comment[%- missed_comments.size > 1 ? 's' : '' -%] last month</h2>
|
|
<p><b>Note to Volunteers</b>: These are comments for shows last month that were not read in the last show because they arrived on or after the recording day. This section will be removed before these notes are released.</p>
|
|
<ul>
|
|
[%- FOREACH comment IN missed_comments -%]
|
|
<li><strong><a href="[% comment.identifier_url %]#comments" target="_blank">hpr[% comment.episode %]</a></strong>
|
|
([% comment.date %]) "<em>[% comment.title %]</em>" by <a href="[% correspondents %]/[% pad4(comment.hostid) %].html" target="_blank">[% comment.host %]</a>.<br/>
|
|
<small>Summary: "<em>[% comment.summary %]</em>"</small><br/>
|
|
From: [% comment.comment_author_name FILTER html_entity -%] on [% date.format(comment.comment_timestamp_ut,'%Y-%m-%d','UTC') -%]:
|
|
[%- IF comment.comment_title.length > 0 %]
|
|
"[% comment.comment_title %]"
|
|
[%- ELSE -%]
|
|
"[no title]"
|
|
[%- END -%]
|
|
<br/><hr class="thin">[% comment.comment_text FILTER html_line_break %]
|
|
</li><br/>
|
|
[%- END -%]
|
|
</ul></div>
|
|
[%- END -%]
|
|
[%# ---------------------------------------------------------------------------------------- -%]
|
|
<h2>Comments this month</h2>
|
|
|
|
[% IF comment_count > 0 -%]
|
|
[%- IF mark_comments == 1 && ignore_count > 0 -%]
|
|
<p id="ignore"><b>Note to Volunteers</b>: Comments marked in green were read in the last
|
|
Community News show and should be ignored in this one.</p>
|
|
[%- END -%]
|
|
<p>These are comments which have been made during the past month, either to shows released during the month or to past shows.
|
|
There [%- comment_count == 1 ? "is $comment_count comment" : "are $comment_count comments" -%] in total.</p>
|
|
[% IF past_count > 0 -%]
|
|
<h3>Past shows</h3>
|
|
<p>There [% past_count == 1 ? "is $past_count comment" : "are $past_count comments" %] on
|
|
[% past.size %] previous [% past.size == 1 ? "show" : "shows" %]:</p>
|
|
<ul>
|
|
[%# Loop through by episode then by comment relating to that episode -%]
|
|
[%- FOREACH ep IN past.keys.sort -%]
|
|
[%- arr = past.$ep -%]
|
|
<li><strong><a href="[% arr.0.identifier_url %]#comments" target="_blank">hpr[% arr.0.episode %]</a></strong>
|
|
([% arr.0.date %]) "<em>[% arr.0.title %]</em>"
|
|
by <a href="[% correspondents %]/[% pad4(arr.0.hostid) %].html" target="_blank">[% arr.0.host %]</a>.<br/>
|
|
[%- IF mark_comments == 1 || ctext == 1 -%]
|
|
<small>Summary: "<em>[% arr.0.summary %]</em>"</small></li>
|
|
[%- END %]
|
|
<li style="list-style: none; display: inline">
|
|
<ul>
|
|
[%- FOREACH row IN arr -%]
|
|
[%# IF mark_comments == 1 && ((row.comment_timestamp_ut <= last_recording) && (arr.0.date.substr(0,7) == last_month)) -%]
|
|
[%# IF mark_comments == 1 && ((row.comment_released_ut <= last_recording) && (arr.0.date.substr(0,7) == last_month)) -%]
|
|
[%- IF mark_comments == 1 && row.ignore == 1 -%]
|
|
<li id="ignore">
|
|
[%- ELSE %]
|
|
<li>
|
|
[%- END %]
|
|
<a href="[% row.identifier_url %]#[% row.index %]" target="_blank">Comment [% row.index %]</a>:
|
|
[% row.comment_author_name FILTER html_entity -%] on [% date.format(row.comment_timestamp_ut,'%Y-%m-%d','UTC') -%]:
|
|
[%- IF row.comment_title.length > 0 %]
|
|
"[% row.comment_title %]"
|
|
[%- ELSE -%]
|
|
"[no title]"
|
|
[%- END -%]
|
|
[%# Add the comment body in too if ctext is true -%]
|
|
[%- IF ctext == 1 %]
|
|
<br/><hr class="thin">[% row.comment_text FILTER html_line_break %]
|
|
</li><br/>
|
|
[%- ELSE -%]
|
|
</li>
|
|
[%- END -%]
|
|
[%- END -%]
|
|
</ul><br/>
|
|
</limage>
|
|
[%- END -%]
|
|
</ul>
|
|
[%- IF mark_comments == 1 || ctext == 1 -%]
|
|
<p><small><small><em>Updated on [% date.format(date.now,'%Y-%m-%d %H:%M:%S') %]</em></small></small></p>
|
|
[%- END -%]
|
|
[%- END %]
|
|
[%# ---------------------------------------------------------------------------------------- -%]
|
|
[% cc = (comment_count - past_count) -%]
|
|
[% IF cc > 0 -%]
|
|
<h3>This month's shows</h3>
|
|
<p>There [% cc == 1 ? "is $cc comment" : "are $cc comments" %] on [% current.size %] of this month's shows:</p>
|
|
<ul>
|
|
[%- FOREACH ep IN current.keys.sort -%]
|
|
[%- arr = current.$ep -%]
|
|
<li><strong><a href="[% arr.0.identifier_url %]#comments" target="_blank">hpr[% arr.0.episode %]</a></strong>
|
|
([% arr.0.date %]) "<em>[% arr.0.title %]</em>"
|
|
by <a href="[% correspondents %]/[% pad4(arr.0.hostid) %].html" target="_blank">[% arr.0.host %]</a>.</li>
|
|
<li style="list-style: none; display: inline">
|
|
<ul>
|
|
[%- FOREACH row IN arr -%]
|
|
<li><a href="[% row.identifier_url %]#[% row.index %]" target="_blank">Comment [% row.index %]</a>:
|
|
[% row.comment_author_name FILTER html_entity -%] on [% date.format(row.comment_timestamp_ut,'%Y-%m-%d','UTC') -%]:
|
|
[%- IF row.comment_title.length > 0 %]
|
|
"[% row.comment_title %]"
|
|
[%- ELSE -%]
|
|
"[no title]"
|
|
[%- END -%]
|
|
</li>
|
|
[%- END -%]
|
|
</ul><br/>
|
|
</li>
|
|
[%- END -%]
|
|
</ul>
|
|
[%- END %]
|
|
[%- ELSE %]
|
|
There were no comments this month.
|
|
[%- END %]
|
|
[%- END %]
|
|
|
|
[%# ---------------------------------------------------------------------------------------- -%]
|
|
[%- IF includefile.defined -%]
|
|
<h2>Mailing List discussions</h2>
|
|
<p>
|
|
Policy decisions surrounding HPR are taken by the community as a whole. This
|
|
discussion takes place on the <a href="https://hackerpublicradio.org/maillist"
|
|
target="_blank">Mail List</a> which is open to all HPR listeners and
|
|
contributors. The discussions are open and available on the HPR server under
|
|
<a href="[% mailbase %]">Mailman</a>.
|
|
</p>
|
|
<p>The threaded discussions this month can be found here:</p>
|
|
[% INCLUDE $includefile -%]
|
|
[%- END %]
|
|
|
|
[%# ---------------------------------------------------------------------------------------- -%]
|
|
<h2>Events Calendar</h2>
|
|
<p>With the kind permission of <strong>LWN.net</strong> we are linking to
|
|
<a href="https://lwn.net/Calendar/" target="_blank">The LWN.net Community Calendar</a>.</p>
|
|
<p>Quoting the site:</p>
|
|
<blockquote>This is the LWN.net community event calendar, where we track
|
|
events of interest to people using and developing Linux and free software.
|
|
Clicking on individual events will take you to the appropriate web
|
|
page.</blockquote>
|
|
|
|
[%# ---------------------------------------------------------------------------------------- -%]
|
|
[%# Any other business? -%]
|
|
[% IF aob == 1 -%]
|
|
<h2>Any other business</h2>
|
|
[% INCLUDE $aobfile -%]
|
|
[%- END %]
|
|
[%#
|
|
# vim: syntax=tt2:ts=8:sw=4:ai:et:tw=78:fo=tcrqn21
|
|
-%]
|
|
|