1
0
Fork 0

Fixing 'absolute_url'

site-generator:

    Added all the modules that the script and the templates use to make
    it explicit what is required.

templates/shared-utils.tpl.html:

    Added a new TT² macro called 'absolute_url' which takes two
    arguments, the base and  the path or relative URL. It's fairly
    primitive but seems to work.

templates/content-about.tpl.html,
templates/content-recording.tpl.html,
templates/content-request_a_slot.tpl.html,
templates/content-requested_topics.tpl.html,
templates/page.tpl.html:

    All calls to 'absolute_url' changed to use two arguments, and the
    link definitions adjusted to match this change.
This commit is contained in:
Dave Morriss 2023-09-09 17:54:19 +01:00
parent 5a73e94cf7
commit b4448caf16
7 changed files with 104 additions and 83 deletions

View File

@ -116,8 +116,15 @@ use Pod::Usage;
use Config::Std;
use Text::CSV_XS;
use HTML::Entities qw(encode_entities_numeric);
use Date::Calc;
use DBI;
use DBD::SQLite;
use Tie::DBI;
use Template;
use Template::Plugin::Date;
use Template::Plugin::DBI;
use Template::Plugin::HTML::Strip;
use Data::Dumper;
exit main();

View File

@ -1,40 +1,40 @@
<h1 id="welcome">Welcome to HPR<a href="<!--% absolute_url(baseurl) %-->about.html#about">.</a></h1>
<h1 id="welcome">Welcome to HPR<a href="<!--% absolute_url(baseurl,'about.html#about') %-->">.</a></h1>
<ul>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#about">About HPR.</a></li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#contact">Contact.</a></li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#press">In the Press.</a></li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#so_you_want_to_record_a_podcast">So you want to record a podcast.</a></li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#requested_topics">Requested Topics.</a></li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#agreement">Stuff you need to know.</a></li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#recording_a_podcast">Recording a Podcast.</a></li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#promote_hpr">Please promote HPR.</a></li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#requesting_slot">Picking a slot for your show.</a></li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#adding_an_episode">Adding an Episode.</a></li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#scheduling_guidelines">Scheduling Guidelines.</a></li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#reserve_queue">The reserve queue.</a></li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#workflow">Workflow.</a></li>
<li><a href="<!--% absolute_url(baseurl) %-->about.html#faq">Frequently Asked Questions.</a></li>
<li><a href="<!--% absolute_url(baseurl,'about.html#about') %-->">About HPR.</a></li>
<li><a href="<!--% absolute_url(baseurl,'about.html#contact') %-->">Contact.</a></li>
<li><a href="<!--% absolute_url(baseurl,'about.html#press') %-->">In the Press.</a></li>
<li><a href="<!--% absolute_url(baseurl,'about.html#so_you_want_to_record_a_podcast') %-->">So you want to record a podcast.</a></li>
<li><a href="<!--% absolute_url(baseurl,'about.html#requested_topics') %-->">Requested Topics.</a></li>
<li><a href="<!--% absolute_url(baseurl,'about.html#agreement') %-->">Stuff you need to know.</a></li>
<li><a href="<!--% absolute_url(baseurl,'about.html#recording_a_podcast') %-->">Recording a Podcast.</a></li>
<li><a href="<!--% absolute_url(baseurl,'about.html#promote_hpr') %-->">Please promote HPR.</a></li>
<li><a href="<!--% absolute_url(baseurl,'about.html#requesting_slot') %-->">Picking a slot for your show.</a></li>
<li><a href="<!--% absolute_url(baseurl,'about.html#adding_an_episode') %-->">Adding an Episode.</a></li>
<li><a href="<!--% absolute_url(baseurl,'about.html#scheduling_guidelines') %-->">Scheduling Guidelines.</a></li>
<li><a href="<!--% absolute_url(baseurl,'about.html#reserve_queue') %-->">The reserve queue.</a></li>
<li><a href="<!--% absolute_url(baseurl,'about.html#workflow') %-->">Workflow.</a></li>
<li><a href="<!--% absolute_url(baseurl,'about.html#faq') %-->">Frequently Asked Questions.</a></li>
</ul>
<h1 id="about">About HPR<a href="<!--% absolute_url(baseurl) %-->about.html#about">.</a></h1>
<h1 id="about">About HPR<a href="<!--% absolute_url(baseurl,'about.html#about') %-->">.</a></h1>
<h2 id="community">The HPR Community<a href="<!--% absolute_url(baseurl) %-->about.html#community">.</a></h2>
<p>What differentiates HPR from other podcasts is that the shows are crowd sourced from the community - fellow listeners like <strong><a href="<!--% absolute_url(baseurl) %-->about.html#contact">you</a></strong>. There is no restriction on how long the show can be, nor on the topic you can cover as long as they are not spam and <em>&quot;are of interest to <a href="http://en.wikipedia.org/wiki/Hacker_(hobbyist)" >Hackers</a>&quot;</em>. If you want to see what topics have been covered so far just have a look at our <a href="<!--% absolute_url(baseurl) %-->eps/index.html">Archive</a>. We also allow for a <a href="<!--% absolute_url(baseurl) %-->series/index.html">series</a> of shows so that hosts can go into more detail on a topic.<p>
<h2 id="community">The HPR Community<a href="<!--% absolute_url(baseurl,'about.html#community') %-->">.</a></h2>
<p>What differentiates HPR from other podcasts is that the shows are crowd sourced from the community - fellow listeners like <strong><a href="<!--% absolute_url(baseurl,'about.html#contact') %-->">you</a></strong>. There is no restriction on how long the show can be, nor on the topic you can cover as long as they are not spam and <em>&quot;are of interest to <a href="http://en.wikipedia.org/wiki/Hacker_(hobbyist)" >Hackers</a>&quot;</em>. If you want to see what topics have been covered so far just have a look at our <a href="<!--% absolute_url(baseurl,'eps/index.html') %-->">Archive</a>. We also allow for a <a href="<!--% absolute_url(baseurl,'series/index.html') %-->">series</a> of shows so that hosts can go into more detail on a topic.<p>
<p>You can download/listen to the shows <a href="<!--% absolute_url(baseurl) %-->eps/index.html">here</a> or you can <a href="<!--% absolute_url(baseurl) %-->syndication.html">subscribe</a> to the show in your favorite podcatching client to automatically get our new shows as soon as they are available. You can copy and redistribute the shows for free provided you adhere to the <a href="https://creativecommons.org/licenses/by-sa/4.0/" >Creative Commons Attribution<WBR> Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) License</a>.</p>
<p>You can download/listen to the shows <a href="<!--% absolute_url(baseurl,'eps/index.html') %-->">here</a> or you can <a href="<!--% absolute_url(baseurl,'syndication.html') %-->">subscribe</a> to the show in your favorite podcatching client to automatically get our new shows as soon as they are available. You can copy and redistribute the shows for free provided you adhere to the <a href="https://creativecommons.org/licenses/by-sa/4.0/" >Creative Commons Attribution<WBR> Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) License</a>.</p>
<h2 id="history">History<a href="<!--% absolute_url(baseurl) %-->about.html#history">.</a></h2>
<p>Hacker Public Radio (HPR) is an Internet Radio show (podcast) that releases shows every weekday Monday through Friday. HPR has a long lineage going back to <a href="http://www.oldskoolphreak.com" >Radio FreeK America</a>, <a href="http://www.binrev.com" >Binary Revolution Radio</a> &amp; <a href="http://nomicon.info" >Infonomicon</a>, and it is a direct continuation of <a href="<!--% absolute_url(baseurl) %-->twat.html" >Twatech</a> radio. Please listen to StankDawg&#39;s &quot;<a href="<!--% media_path(1, 'hpr', 'mp3', baseurl, media_baseurl) %-->" >Introduction to HPR</a>&quot; for more information.</p>
<h2 id="history">History<a href="<!--% absolute_url(baseurl,'about.html#history') %-->">.</a></h2>
<p>Hacker Public Radio (HPR) is an Internet Radio show (podcast) that releases shows every weekday Monday through Friday. HPR has a long lineage going back to <a href="http://www.oldskoolphreak.com" >Radio FreeK America</a>, <a href="http://www.binrev.com" >Binary Revolution Radio</a> &amp; <a href="http://nomicon.info" >Infonomicon</a>, and it is a direct continuation of <a href="<!--% absolute_url(baseurl,'twat.html') %-->" >Twatech</a> radio. Please listen to StankDawg&#39;s &quot;<a href="<!--% media_path(1, 'hpr', 'mp3', baseurl, media_baseurl) %-->" >Introduction to HPR</a>&quot; for more information.</p>
<h2 id="free_culture">Free Culture<a href="<!--% absolute_url(baseurl) %-->about.html#free_culture">.</a></h2>
<h2 id="free_culture">Free Culture<a href="<!--% absolute_url(baseurl,'about.html#free_culture') %-->">.</a></h2>
<p>Hacker Public Radio is dedicated to sharing knowledge. We do not accept donations so please consider supporting our patrons. If you listen to HPR, then we would love you to <a href="contribute.html">contribute</a> one show a year. Our shows are by default released under a <a href="https://creativecommons.org/licenses/by-sa/4.0/" >Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</a> license. All the software we use is <a href="https://en.wikipedia.org/wiki/Free_software" >Free software</a>. All the code we develop is published in our <a href="http://gitlab.anhonesthost.com/HPR/HPR_Public_Code/" >gitlab</a> repository. All the media is available via the feeds. We are going through an audit process to release the website code as well.</p>
<h2 id ="governance" >Governance<a href="<!--% absolute_url(baseurl) %-->about.html#governance">.</a></h2>
<p>HPR is entirely community driven. Policy decisions are proposed and discussed on the <a href="<!--% absolute_url(baseurl) %-->/maillist" >Mailing list</a>, which is open to anyone to join. Mailing list discussions are brought to the attention of the listening community on the first Monday of the month in the <a href="<!--% absolute_url(baseurl) %-->series/0047.html" >HPR Community News</a> show. This show is also <a href="<!--% absolute_url(baseurl) %-->recording.html#round_table" >open to anyone</a> to participate in. The schedule for the Community News shows can be downloaded as an <a href="<!--% absolute_url(baseurl) %-->HPR_Community_News_schedule.ics">iCal calendar</a> containing recording dates for the next 12 months. A reminder is also sent to the mailing list in the week before the recording.</p>
<p>Our hosting is kindly provided to us by <a href="<!--% absolute_url(baseurl) %-->correspondents/0174.html">Josh Knapp</a> from <a href="https://anhonesthost.com/hosting/shared-hosting">AnHonestHost.com</a>, and he has the last word in issues related to site security. A changing team of volunteers called the "admins" or "Janitors", deal with the day to day operation of HPR. Acting as the first point of contact, processing the shows, coordinating policy discussions, removing spam, updating the website, etc. They are contactable via the email account admin @ HPR. They have no more say over policy than anyone else. Anyone who has shown a long term dedication to the project and is trusted by the community, can become an admin.
<h2 id ="governance" >Governance<a href="<!--% absolute_url(baseurl,'about.html#governance') %-->">.</a></h2>
<p>HPR is entirely community driven. Policy decisions are proposed and discussed on the <a href="<!--% absolute_url(baseurl,'/maillist') %-->" >Mailing list</a>, which is open to anyone to join. Mailing list discussions are brought to the attention of the listening community on the first Monday of the month in the <a href="<!--% absolute_url(baseurl,'series/0047.html') %-->" >HPR Community News</a> show. This show is also <a href="<!--% absolute_url(baseurl,'recording.html#round_table') %-->" >open to anyone</a> to participate in. The schedule for the Community News shows can be downloaded as an <a href="<!--% absolute_url(baseurl,'HPR_Community_News_schedule.ics') %-->">iCal calendar</a> containing recording dates for the next 12 months. A reminder is also sent to the mailing list in the week before the recording.</p>
<p>Our hosting is kindly provided to us by <a href="<!--% absolute_url(baseurl,'correspondents/0174.html') %-->">Josh Knapp</a> from <a href="https://anhonesthost.com/hosting/shared-hosting">AnHonestHost.com</a>, and he has the last word in issues related to site security. A changing team of volunteers called the "admins" or "Janitors", deal with the day to day operation of HPR. Acting as the first point of contact, processing the shows, coordinating policy discussions, removing spam, updating the website, etc. They are contactable via the email account admin @ HPR. They have no more say over policy than anyone else. Anyone who has shown a long term dedication to the project and is trusted by the community, can become an admin.
</p>
<p>See the section <a href="<!--% absolute_url(baseurl) %-->about.html#stuff_you_need_to_know" >stuff you need to know</a> for more information.</p>
<p>See the section <a href="<!--% absolute_url(baseurl,'about.html#stuff_you_need_to_know') %-->" >stuff you need to know</a> for more information.</p>
<h3 id="recent_policy_changes">Recent Policy Changes</h3>
<ul>
<li><a href="https://lists.hackerpublicradio.com/pipermail/hpr/2021-July/004191.html">HPR will move #oggcastplanet on libera, and we will also include links to the matrix, and mastodon channel</a></li>
@ -42,7 +42,7 @@
<li><a href="https://lists.hackerpublicradio.com/pipermail/hpr/2021-November/004328.html">The Intro Outro will be changed and the upload form will remove the option to add intro and outros.</a></li>
<li><a href="https://lists.hackerpublicradio.com/pipermail/hpr/2021-December/004341.html">Removal of "by arranged permission" when posting to HPR</a></li>
</ul>
<h2 id ="patrons" >Please support our Patrons<a href="<!--% absolute_url(baseurl) %-->about.html#patrons">.</a></h2>
<h2 id ="patrons" >Please support our Patrons<a href="<!--% absolute_url(baseurl,'about.html#patrons') %-->">.</a></h2>
<p>
Our hosting is kindly provided by <a href="http://hackerpublicradio.org/correspondents/0174.html">Josh</a> from <a href="https://anhonesthost.com/shared-hosting/">AnHonestHost.com</a>. We would appreciate it if you could <a href="https://secure.anhonesthost.com/cart.php?gid=17">donate</a> to help reduce his costs in funding the hosting. He is also accepting bitcoins to <em>1KsxJr9HtsdaUeU7yaV9bk9bQi21UPBtUq</em>
</p>
@ -52,14 +52,14 @@
<hr />
<h1 id="contact">Contact<a href="<!--% absolute_url(baseurl) %-->about.html#contact">.</a></h1>
<h1 id="contact">Contact<a href="<!--% absolute_url(baseurl,'about.html#contact') %-->">.</a></h1>
<p>We are always looking for more hosts...</p>
<ul>
<li>email: <strong>admin -at- hackerpublicradio org</strong><br />
<em>As an anti-spam measure you will get an error back but we do get your email.</em></li>
<li>Website: <a href="<!--% absolute_url(baseurl) %-->" ><!--% absolute_url(baseurl) %--></a></li>
<li>Mailist: <a href="<!--% absolute_url(baseurl) %-->/maillist">Maillist</a></li>
<li>Website: <a href="<!--% absolute_url(baseurl,'') %-->" ><!--% absolute_url(baseurl,'') %--></a></li>
<li>Maillist: <a href="<!--% absolute_url(baseurl,'/maillist') %-->">Mailing list</a></li>
<li><a href="https://web.libera.chat/gamja/?channels=oggcastplanet" >#oggcastplanet</a></li>
<li><a href="https://www.facebook.com/home.php?sk=group_130169220378872¬if_t=group_r2j" >Facebook</a></li>
<li><a href="https://www.linkedin.com/company/hackerpublicradio/" >Linked-In</a></li>
@ -68,50 +68,50 @@
<h2>Mail List</h2>
<p>
HPR is governed by the community, so decisions about how <?php print "${HPR_Name}";?> Public Radio should be run are made on the mailing list you can join it by going to :<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="<!--% absolute_url(baseurl) %-->/maillist"><!--% absolute_url(baseurl) %-->/maillist</a>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="<!--% absolute_url(baseurl,'/maillist') %-->"><!--% absolute_url(baseurl,'/maillist') %--></a>
</p>
<hr />
<h1 id ="press" >In the Press<a href="<!--% absolute_url(baseurl) %-->about.html#press">.</a></h1>
<h1 id ="press" >In the Press<a href="<!--% absolute_url(baseurl,'about.html#press') %-->">.</a></h1>
<ul>
<li>2019-10-18: <a href="https://blog.feedspot.com/hacker_podcasts/">Top 10 Hacker Podcasts You Must Follow in 2019</a> (<a href="<!--% absolute_url(baseurl) %-->press/2019-10-18_blog.feedspot.com-hacker_podcasts-Top_10_Hacker_Podcasts_You_Must_Follow_in_2019.pdf">Archived</a>)</li>
<li>2018-08-01: <a href="https://www.linuxlinks.com/review-hacker-public-radio-podcasts-hacker-community/">Review: The Linux Podcast Scene all the movers and shakers</a> (<a href="<!--% absolute_url(baseurl) %-->press/2018-08-01_linuxlinks.com_review-linux-podcast-scene-movers-shakers.pdf">Archived</a>)</li>
<li>2016-06-26: <a href="http://www.podcastawards.com/">11th Podcast Awards</a> (<a href="<!--% absolute_url(baseurl) %-->press/2016-06-26_www.podcastawards.com.png">Archived</a>)</li>
<li>2016-05-18: <a href="http://solutionsreview.com/endpoint-security/top-ten-cybersecurity-podcasts/">Ten Security Podcasts You Should Be Listening To</a> by Lauren Cooke in Endpoint Security News (<a href="<!--% absolute_url(baseurl) %-->press/2016-05-18_solutionsreview.com_endpoint-security_top-ten-cybersecurity-podcasts.png">Archived</a>)</li>
<li>2016-01-18: <a href="http://www.tripwire.com/state-of-security/security-awareness/information-security-podcast-roundup-2016-edition/">Information Security Podcast Roundup: 2016 Edition</a> from TripWire.com (<a href="<!--% absolute_url(baseurl) %-->press/2016-01-18_Information_Security_Podcast_Roundup_2016_Edition.pdf">Archived</a>)</li>
<li>2014-12-09: <a href="http://joeyh.name/blog/entry/podcasts_that_dont_suck_2014/">podcasts that don't suck, 2014 edition (Joey Hess)</a>(<a href="<!--% absolute_url(baseurl) %-->press/2014-12-09_podcasts_that_dont_suck_2014_edition.pdf">Archived</a>)</li>
<li>2014-06-30: <a href="http://opensource.com/life/14/6/hacker-public-radio">Free software on Hacker Public Radio</a> by Bryan Behrenshausen (Red Hat)(<a href="<!--% absolute_url(baseurl) %-->press/2014-06-30_Free_software_on_Hacker_Public_Radio.pdf">Archived</a>)</li>
<li>2014-04-19: <a href="http://www.efytimes.com/e1/fullnews.asp?edid=136312">10 Useful Places Hosting Informative Podcasts On Linux</a> (<a href="<!--% absolute_url(baseurl) %-->press/2014-04-19_10_Useful_Places_Hosting_Informative_Podcasts_On_Linux.pdf">Archived</a>)
<li>2014-04-11: <a href="http://blog.sleeplessbeastie.eu/2014/04/11/hand-picked-audio-podcasts-for-linux-users/">Hand-picked audio podcasts for Linux users</a> by Milosz Galazka (<a href="<!--% absolute_url(baseurl) %-->press/2014-04-11_hand-picked-audio-podcasts-for-linux-users.pdf">Archive</a>)</li>
<li>2013-10-11: <a href="http://www.linuxlinks.com/article/20130706190339587/LinuxPodcasts-Page1.html">Illuminating Linux Podcasts</a> by Dan Petersen (<a href="<!--% absolute_url(baseurl) %-->press/2013-10-11_Illuminating_Linux_Podcasts.pdf">Archive</a>)</li>
<li>2012-12-24: <a href="http://www.maketecheasier.com/10-great-podcasts-for-linux-open-source-geeks/">10 Great Podcasts for Linux &amp; Open Source Geeks</a> by Rebecca "Ruji" Chapnik (<a href="<!--% absolute_url(baseurl) %-->press/2012-12-24_10-great-podcasts-for-linux-open-source-geeks.pdf">Archived</a>)</li>
<li>2011-08-01: <a href="http://www.linuxformat.com/archives?issue=147">Linux Format: Pick the perfect geek podcast in our roundup</a> by Mayank Sharma in Linux Format Magazine(<a href="<!--% absolute_url(baseurl) %-->press/2011-08-01_hpr-linux-format.png">Archive</a>)</li>
<li>2019-10-18: <a href="https://blog.feedspot.com/hacker_podcasts/">Top 10 Hacker Podcasts You Must Follow in 2019</a> (<a href="<!--% absolute_url(baseurl,'press/2019-10-18_blog.feedspot.com-hacker_podcasts-Top_10_Hacker_Podcasts_You_Must_Follow_in_2019.pdf') %-->">Archived</a>)</li>
<li>2018-08-01: <a href="https://www.linuxlinks.com/review-hacker-public-radio-podcasts-hacker-community/">Review: The Linux Podcast Scene all the movers and shakers</a> (<a href="<!--% absolute_url(baseurl,'press/2018-08-01_linuxlinks.com_review-linux-podcast-scene-movers-shakers.pdf') %-->">Archived</a>)</li>
<li>2016-06-26: <a href="http://www.podcastawards.com/">11th Podcast Awards</a> (<a href="<!--% absolute_url(baseurl,'press/2016-06-26_www.podcastawards.com.png') %-->">Archived</a>)</li>
<li>2016-05-18: <a href="http://solutionsreview.com/endpoint-security/top-ten-cybersecurity-podcasts/">Ten Security Podcasts You Should Be Listening To</a> by Lauren Cooke in Endpoint Security News (<a href="<!--% absolute_url(baseurl,'press/2016-05-18_solutionsreview.com_endpoint-security_top-ten-cybersecurity-podcasts.png') %-->">Archived</a>)</li>
<li>2016-01-18: <a href="http://www.tripwire.com/state-of-security/security-awareness/information-security-podcast-roundup-2016-edition/">Information Security Podcast Roundup: 2016 Edition</a> from TripWire.com (<a href="<!--% absolute_url(baseurl,'press/2016-01-18_Information_Security_Podcast_Roundup_2016_Edition.pdf') %-->">Archived</a>)</li>
<li>2014-12-09: <a href="http://joeyh.name/blog/entry/podcasts_that_dont_suck_2014/">podcasts that don't suck, 2014 edition (Joey Hess)</a>(<a href="<!--% absolute_url(baseurl,'press/2014-12-09_podcasts_that_dont_suck_2014_edition.pdf') %-->">Archived</a>)</li>
<li>2014-06-30: <a href="http://opensource.com/life/14/6/hacker-public-radio">Free software on Hacker Public Radio</a> by Bryan Behrenshausen (Red Hat)(<a href="<!--% absolute_url(baseurl,'press/2014-06-30_Free_software_on_Hacker_Public_Radio.pdf') %-->">Archived</a>)</li>
<li>2014-04-19: <a href="http://www.efytimes.com/e1/fullnews.asp?edid=136312">10 Useful Places Hosting Informative Podcasts On Linux</a> (<a href="<!--% absolute_url(baseurl,'press/2014-04-19_10_Useful_Places_Hosting_Informative_Podcasts_On_Linux.pdf') %-->">Archived</a>)
<li>2014-04-11: <a href="http://blog.sleeplessbeastie.eu/2014/04/11/hand-picked-audio-podcasts-for-linux-users/">Hand-picked audio podcasts for Linux users</a> by Milosz Galazka (<a href="<!--% absolute_url(baseurl,'press/2014-04-11_hand-picked-audio-podcasts-for-linux-users.pdf') %-->">Archive</a>)</li>
<li>2013-10-11: <a href="http://www.linuxlinks.com/article/20130706190339587/LinuxPodcasts-Page1.html">Illuminating Linux Podcasts</a> by Dan Petersen (<a href="<!--% absolute_url(baseurl,'press/2013-10-11_Illuminating_Linux_Podcasts.pdf') %-->">Archive</a>)</li>
<li>2012-12-24: <a href="http://www.maketecheasier.com/10-great-podcasts-for-linux-open-source-geeks/">10 Great Podcasts for Linux &amp; Open Source Geeks</a> by Rebecca "Ruji" Chapnik (<a href="<!--% absolute_url(baseurl,'press/2012-12-24_10-great-podcasts-for-linux-open-source-geeks.pdf') %-->">Archived</a>)</li>
<li>2011-08-01: <a href="http://www.linuxformat.com/archives?issue=147">Linux Format: Pick the perfect geek podcast in our roundup</a> by Mayank Sharma in Linux Format Magazine(<a href="<!--% absolute_url(baseurl,'press/2011-08-01_hpr-linux-format.png') %-->">Archive</a>)</li>
</ul>
<hr />
<h1 id="so_you_want_to_record_a_podcast">So you want to record a podcast<a href="<!--% absolute_url(baseurl) %-->about.html#so_you_want_to_record_a_podcast">.</a></h1>
<h1 id="so_you_want_to_record_a_podcast">So you want to record a podcast<a href="<!--% absolute_url(baseurl,'about.html#so_you_want_to_record_a_podcast') %-->">.</a></h1>
<p>Well you've come to the right place. Our goal here at HPR is to make it as easy as possible for you to get a podcast released. We take care of the hard bits so you don't need to. Recording your first show is always a daunting prospect but over <a href="/correspondents.php"><?php echo "$total"; ?></a> people like yourself have done it and so can you.
</p>
<h2 id="stuff_you_need_to_know">1. Stuff you need to know<a href="<!--% absolute_url(baseurl) %-->about.html#stuff_you_need_to_know">.</a></h2>
<h2 id="stuff_you_need_to_know">1. Stuff you need to know<a href="<!--% absolute_url(baseurl,'about.html#stuff_you_need_to_know') %-->">.</a></h2>
<ul>
<li>HPR will stop as a project if there are not enough Shows.</li>
<li>We do not <a href="<!--% absolute_url(baseurl) %-->about.html##syndication">syndicate</a> shows not produced for HPR.</li>
<li>You are agreeing to <a href="<!--% absolute_url(baseurl) %-->about.html##license">license</a> your show CC BY-SA 4.0.</li>
<li>You have <a href="<!--% absolute_url(baseurl) %-->about.html#permission">permission</a> to redistribute your show in its entirety.</li>
<li>Your audio will <a href="<!--% absolute_url(baseurl) %-->about.html#not_moderated">not be moderated.</a></li>
<li>Your show will be signaled as containing <a href="<!--% absolute_url(baseurl) %-->about.html#explicit">explicit</a> content.</li>
<li>You determine where in the <a href="<!--% absolute_url(baseurl) %-->about.html#schedule">schedule</a> your show will be released.</li>
<li>We use <a href="<!--% absolute_url(baseurl) %-->about.html#utf8">UTF-8</a> end to end.</li>
<li>Your show will be heard by an <a href="<!--% absolute_url(baseurl) %-->about.html#international">International</a> Audience.</li>
<li>We also need <a href="<!--% absolute_url(baseurl) %-->about.html#reserve_queue">reserve</a> shows.</li>
<li>You will no longer be allowed to edit HPR pages on <a href="<!--% absolute_url(baseurl) %-->about.html#wikipedia">Wikipedia</a>.</li>
<li>We do not <a href="<!--% absolute_url(baseurl,'about.html##syndication') %-->">syndicate</a> shows not produced for HPR.</li>
<li>You are agreeing to <a href="<!--% absolute_url(baseurl,'about.html##license') %-->">license</a> your show CC BY-SA 4.0.</li>
<li>You have <a href="<!--% absolute_url(baseurl,'about.html#permission') %-->">permission</a> to redistribute your show in its entirety.</li>
<li>Your audio will <a href="<!--% absolute_url(baseurl,'about.html#not_moderated') %-->">not be moderated.</a></li>
<li>Your show will be signaled as containing <a href="<!--% absolute_url(baseurl,'about.html#explicit') %-->">explicit</a> content.</li>
<li>You determine where in the <a href="<!--% absolute_url(baseurl,'about.html#schedule') %-->">schedule</a> your show will be released.</li>
<li>We use <a href="<!--% absolute_url(baseurl,'about.html#utf8') %-->">UTF-8</a> end to end.</li>
<li>Your show will be heard by an <a href="<!--% absolute_url(baseurl,'about.html#international') %-->">International</a> Audience.</li>
<li>We also need <a href="<!--% absolute_url(baseurl,'about.html#reserve_queue') %-->">reserve</a> shows.</li>
<li>You will no longer be allowed to edit HPR pages on <a href="<!--% absolute_url(baseurl,'about.html#wikipedia') %-->">Wikipedia</a>.</li>
</ul>
<h2 id="select_a_topic">2. Select a Topic<a href="<!--% absolute_url(baseurl) %-->about.html#select_a_topic">.</a></h2>
<h2 id="select_a_topic">2. Select a Topic<a href="<!--% absolute_url(baseurl,'about.html#select_a_topic') %-->">.</a></h2>
<p>
The first thing you will need to do is decide on a topic for your show. You might already have an idea but if not you can have a look at our <a href="/index_full.php">Archive</a> page for examples of shows people have recorded in the past. You can also look at our <a href="/requested_topics.php">Requested Topics</a>, or our <a href="/series.php">Series</a> page to see if you can add your knowledge to the pool.
</p>
@ -122,7 +122,7 @@
If you can't think of anything to talk about then please just record a show telling us <a href="series.php?id=29">how you got into tech</a> as a way to introducing yourself to the community.
</p>
<h2 id="record_your_show">3. Record your show<a href="<!--% absolute_url(baseurl) %-->about.html#record_your_show">.</a></h2>
<h2 id="record_your_show">3. Record your show<a href="<!--% absolute_url(baseurl,'about.html#record_your_show') %-->">.</a></h2>
<p>
Please select <a href="recording.php">more detailed information</a> on how to record a show:
</p>
@ -138,7 +138,7 @@
</ul>
<p>Don't forget to <strong>introduce yourself</strong> in your show.</p>
<h2 id="upload_your_show">4. Upload your show<a href="<!--% absolute_url(baseurl) %-->about.html#upload_your_show">.</a></h2>
<h2 id="upload_your_show">4. Upload your show<a href="<!--% absolute_url(baseurl,'about.html#upload_your_show') %-->">.</a></h2>
<p>
Once you have your audio ready you can post your show by going to the <a href="/calendar.php">Calendar</a> page or press the <strong><a href="calendar.php">⇧Upload⇧</strong></a> button.
</p>
@ -149,12 +149,12 @@
<a href="request_a_slot.php">More Information</a>.
</p>
<h2 id="questions"><a href="<!--% absolute_url(baseurl) %-->about.html#questions">.</a></h2>Questions ?</h2>
<h2 id="questions"><a href="<!--% absolute_url(baseurl,'about.html#questions') %-->">.</a></h2>Questions ?</h2>
<p>
Got any questions not covered here, then just email <strong>"admin" at "<?php print "${HTTP_HOST}";?>"</strong>, and well get in touch with you with all you need to know about getting your show published.<br />
You can chat with other podcasters using IRC in the <strong>#oggcastplanet</strong> channel on the <a href="https://web.libera.chat/gamja/?channels=oggcastplanet">freenode.net</a> network. Follow us on <a href="https://identi.ca/group/hpr">identi.ca</a> (use the tag <strong>!hpr</strong>) and on <a href="https://twitter.com/hpr">Twitter</a> (use the tag <strong>#hpr</strong>). We have a <a href="https://www.facebook.com/home.php?sk=group_130169220378872">Facebook</a> and <a href="https://www.linkedin.com/groups?mostPopular=&amp;gid=3737302">LinkedIn</a> group, so please join and spread the word.</p>
<h2 id="still_nervous"><a href="<!--% absolute_url(baseurl) %-->about.html#still_nervous">.</a></h2>Still Nervous</h2>
<h2 id="still_nervous"><a href="<!--% absolute_url(baseurl,'about.html#still_nervous') %-->">.</a></h2>Still Nervous</h2>
<p>
Fellow listeners like yourself contribute the shows and so we all know how hard it is to do that first show. You're probably worried that we won't like the topic. Well don't be, have a look at our <a href="/index_full.php">archive</a> to see how diverse the contributions have been. You're probably worried about the quality of your audio, that you sound funny, that English isn't your native language, that you suffer from a speech impediment, that your show has loads of ummms and awws in it, well don't be. We have plenty of hosts that fall into all these categories but continue to produce great shows.
</p>
@ -173,7 +173,7 @@
<hr />
<h1 id="requested_topics">Requested topics<a href="<!--% absolute_url(baseurl) %-->about.html#requested_topics">.</a></h1>
<h1 id="requested_topics">Requested topics<a href="<!--% absolute_url(baseurl,'about.html#requested_topics') %-->">.</a></h1>
<p>This is a list of topics that have been requested by the community. Feel free to add it to the list by emailing admin at hpr or by tweeting us on <a href="https://twitter.com/hpr">@HPR</a>.</p>
<ul>
@ -248,7 +248,7 @@
<h2 id="mailinglist">All policy decisions are made by the HPR Community<a href="#mailinglist">.</a></h2>
<p>
The community decides the HPR policies.
Please join the <a href="<!--% absolute_url(baseurl) %-->/maillist">HPR Mailing List</a> to participate.
Please join the <a href="<!--% absolute_url(baseurl,'/maillist') %-->">HPR Mailing List</a> to participate.
</p>
<h2 id="no_shows_no_hpr">HPR will stop as a project if there are not enough shows<a href="#no_shows_no_hpr">.</a></h2>
@ -334,7 +334,7 @@
Any host can select any free slot a up to year in advance. However the audio must be ready at time of picking a slot so that it can be upload immediately afterwards.
</p>
<p>
In exceptional circumstances it may be necessary to reserve a slot while not having the audio available, but this must be approved by the <a href="<!--% absolute_url(baseurl) %-->/maillist">HPR Mailing List</a> in advance.
In exceptional circumstances it may be necessary to reserve a slot while not having the audio available, but this must be approved by the <a href="<!--% absolute_url(baseurl,'/maillist') %-->">HPR Mailing List</a> in advance.
Be sure to allow as much time as possible, and include a reason why you feel it is necessary to reserve the slot.
</p>
<p>
@ -481,7 +481,7 @@
<hr />
<h1 id="promote_hpr">Please promote HPR<a href="<!--% absolute_url(baseurl) %-->about.html#promote_hpr">.</a></h1>
<h1 id="promote_hpr">Please promote HPR<a href="<!--% absolute_url(baseurl,'about.html#promote_hpr') %-->">.</a></h1>
<p>Feel free to use the promotional material to spread the word in your podcasts, or have them played on to other shows.</p>
<h2>General HPR promotion</h2>
@ -504,7 +504,7 @@
<h1 id="requesting_slot">Picking a slot for your show</h1>
<p>
Any host can select any free slot a up to year in advance, by recording their show and uploading it to the desired slot. In exceptional circumstances it may be necessary to reserve a slot while not having the audio available, but this must be approved by the <a href="<!--% absolute_url(baseurl) %-->/maillist">HPR mailing list</a> in advance. Be sure to allow as much time as possible, and include a reason why you feel it is necessary to reserve the slot.
Any host can select any free slot a up to year in advance, by recording their show and uploading it to the desired slot. In exceptional circumstances it may be necessary to reserve a slot while not having the audio available, but this must be approved by the <a href="<!--% absolute_url(baseurl,'/maillist') %-->">HPR mailing list</a> in advance. Be sure to allow as much time as possible, and include a reason why you feel it is necessary to reserve the slot.
</p>
<p>
This is intended only for exceptional circumstances, such as a scheduled interview where we would like the audio to be released as soon after the event as possible, or to cover an important topical situation that has occurred. Due to the extended time now needed to post shows to external sites, the extra work this entails and the disruptive effect of reservations, we will no longer be allowing them except in very rare cases of the type mentioned above. [<a href="https://lists.hackerpublicradio.com/pipermail/hpr/2018-February/003482.html">?</a>]
@ -687,7 +687,7 @@
<li><p>Similarly, a <em>summary</em> helps to add more information describing the show so a potential listener can decide whether to listen to it or not.</p></li>
<li><p>Each show is expected to have certain mandatory attributes listed <a href="#what-are-the-mandatory-elements-of-an-hpr-show">below</a>.</p></li>
<li><p>HPR shows are usually expected to be informative or educational, and as such some sort of accompanying written material is highly desirable. This might consist of brief notes, links to relevant web sites, or possibly longer notes and examples. Photographs, diagrams and example files are also welcome if the host feels it helps to get the message across.</p></li>
<li><p>Shows are released under a <a href="">Creative Commons Attribution-ShareAlike 3.0 Unported</a> license. See <a href="<!--% absolute_url(baseurl) %-->about.html#stuff_you_need_to_know"><em>Stuff you need to know</em></a> for much more detail about this and related issues.</p></li>
<li><p>Shows are released under a <a href="">Creative Commons Attribution-ShareAlike 3.0 Unported</a> license. See <a href="<!--% absolute_url(baseurl,'about.html#stuff_you_need_to_know') %-->"><em>Stuff you need to know</em></a> for much more detail about this and related issues.</p></li>
<li><p>As a contributor you can choose when your show will be released. We only release one show a day, during week days, but if a slot is free you can claim it. Go to the <a href="http://hackerpublicradio.org/calendar.php"><em>calendar</em></a> page to do this. You need to have your show ready to upload before you reserve a slot though.</p></li>
</ul>
<h2 data-number="0.3" id="can-i-submit-a-show-made-for-another-podcast"><span class="header-section-number">0.3</span> Can I submit a show made for another podcast?</h2>
@ -783,7 +783,7 @@
<ul>
<li>You have a number of choices:
<ul>
<li>The mailing list <a href="mailto:hpr@hackerpublicradio.org" class="email">hpr@hackerpublicradio.org</a> is where various policy matters are discussed and announcements made. You need to be a member of the list to post to it. Visit the <a href="<!--% absolute_url(baseurl) %-->/maillist" ><em>listinfo page</em></a> to sign up.</li>
<li>The mailing list <a href="mailto:hpr@hackerpublicradio.org" class="email">hpr@hackerpublicradio.org</a> is where various policy matters are discussed and announcements made. You need to be a member of the list to post to it. Visit the <a href="<!--% absolute_url(baseurl,'/maillist') %-->" ><em>listinfo page</em></a> to sign up.</li>
<li>You can join the <strong>#oggcastplanet</strong> channel on IRC. Visit the <a href="http://webchat.freenode.net/?channels=oggcastplanet">freenode.net</a> network to sign up.</li>
<li>A number of HPR messages may be found on Twitter (tag <strong>#hpr</strong>) and Mastodon (tag <strong>#hpr</strong>).</li>
<li><strong>TBA - Matrix? Telegram?</strong></li>

View File

@ -35,7 +35,7 @@
Many of today's <a href="http://wiki.xiph.org/PortablePlayers">portable media players</a> support recording audio out of the box. Search for "Voice Recorder", to see if there is an application for your smartphone. Whichever option you have close to hand, try and set the recording to the best quality format (<a href="http://en.wikipedia.org/wiki/WAV">WAV</a> or <a href="http://en.wikipedia.org/wiki/FLAC">FLAC</a>), and set everything else to the highest setting. It's always the goal to get the best quality audio but here at Hacker Public Radio we value content over quality and so long as it's audible we'll take it.
</p>
<p>
Then just record your show, <a href="r<!--% absolute_url(baseurl) %-->equest_a_slot.html">request a slot</a>, and we'll do the rest.
Then just record your show, <a href="<!--% absolute_url(baseurl,'request_a_slot.html') %-->">request a slot</a>, and we'll do the rest.
</p>
<h2 id="smart_phone">Recording with a portable media player<a href="#smart_phone">.</a></h2>
@ -55,7 +55,7 @@
The majority of podcasters use <a href="http://audacity.sourceforge.net/download/">Audacity</a>. First set the Project Rate to 44100Hz, then you can either record your show in Audacity itself or import the file you recorded earlier and edit it as you wish.
</p>
<p>
<img width="600" src="<!--% absolute_url(baseurl) %-->images/contribute-audacity-record.png" alt="Audacity Can Record" title="Audacity Screenshot of Recording" >
<img width="600" src="<!--% absolute_url(baseurl,'images/contribute-audacity-record.png') %-->" alt="Audacity Can Record" title="Audacity Screenshot of Recording" >
</p>
<blockquote>Audacity is a free, easy-to-use and multilingual audio editor and recorder for Windows, Mac OS X, GNU/Linux and other operating systems.</blockquote>
<iframe width="640" height="390" src="//www.youtube.com/embed/ss8CyTwBOPY" style="border: none"></iframe>
@ -70,7 +70,7 @@
<li>Set <em>Bit depth</em> to <strong>24</strong>.</li>
</ol>
<p>
<img width="600" src="<!--% absolute_url(baseurl) %-->images/contribute-audacity-export.png" alt="Audacity Export Settings" title="Audacity Screenshot of an Export" >
<img width="600" src="<!--% absolute_url(baseurl,'images/contribute-audacity-export.png') %-->" alt="Audacity Export Settings" title="Audacity Screenshot of an Export" >
</p>
<h2 id="phone_interviews">Recording Interviews with the Phone<a href="#phone_interviews">.</a></h2>
@ -83,10 +83,10 @@
If you would like to record with multiple participants then you can use <a href="http://www.mumble.com/">Mumble</a>. Connect to <strong>chatter.skyehaven.net</strong> Port: <strong>64738 </strong>.<br />
Walk through the audio wizard and then pop into the <strong>Hacker Public Radio</strong> room. Once you are ready press the <strong>recording</strong> button, select <em>multichannel</em> and then <em>start</em>. That will record multiple tracks, one for each participant which you can edit and then submit.
<br />
Kwisher made a <a href="<!--% absolute_url(baseurl) %-->Mumble-How-To.pdf">Mumble tutorial</a> which you might find useful and Delwin has produced a number of short <a href="<!--% absolute_url(baseurl) %-->correspondents/0228.html">shows</a> on how to configure the audio quality.
Kwisher made a <a href="<!--% absolute_url(baseurl,'Mumble-How-To.pdf') %-->">Mumble tutorial</a> which you might find useful and Delwin has produced a number of short <a href="<!--% absolute_url(baseurl,'correspondents/0228.html') %-->">shows</a> on how to configure the audio quality.
</p>
<p>
<img width="600" src="<!--% absolute_url(baseurl) %-->images/contribute-mumble-record.png" alt="Audacity Can Record" title="Audacity Screenshot of Recording" >
<img width="600" src="<!--% absolute_url(baseurl,'images/contribute-mumble-record.png') %-->" alt="Audacity Can Record" title="Audacity Screenshot of Recording" >
</p>
<h2 id="background_music">Avoid Bedding/background music<a href="#background_music">.</a></h2>

View File

@ -1,16 +1,16 @@
<!--% PROCESS 'shared-utils.tpl.html' %-->
<h1 id="requesting_slot">Picking a slot for your show</h1>
<p>
Any host can select any free slot a up to year in advance, by recording their show and uploading it to the desired slot. In exceptional circumstances it may be necessary to reserve a slot while not having the audio available, but this must be approved by the <a href="<!--% absolute_url(baseurl) %-->/maillist">HPR mailing list</a> in advance. Be sure to allow as much time as possible, and include a reason why you feel it is necessary to reserve the slot.
Any host can select any free slot a up to year in advance, by recording their show and uploading it to the desired slot. In exceptional circumstances it may be necessary to reserve a slot while not having the audio available, but this must be approved by the <a href="<!--% absolute_url(baseurl,'/maillist') %-->">HPR mailing list</a> in advance. Be sure to allow as much time as possible, and include a reason why you feel it is necessary to reserve the slot.
</p>
<p>
This is intended only for exceptional circumstances, such as a scheduled interview where we would like the audio to be released as soon after the event as possible, or to cover an important topical situation that has occurred. Due to the extended time now needed to post shows to external sites, the extra work this entails and the disruptive effect of reservations, we will no longer be allowing them except in very rare cases of the type mentioned above. [<a href="https://lists.hackerpublicradio.com/pipermail/hpr/2018-February/003482.html">?</a>]
</p>
<p>
You can post your show by going to the <a href="<!--% hub_baseurl %-->calendar.php">Calendar</a> page. Once you have selected a date you will be redirected to the <a href="<!--% absolute_url(baseurl) %-->request.html">request page</a>, where you will be asked to select your show and email address. We will send a link to where you can upload your show to this address and therefore it must be a valid working address that you can access quickly. We intend to use <a href="https://www.gnupg.org/">GPG</a> to speed up the validation of hosts, so you may wish to use an email address that has an associated public key available on public key servers.
You can post your show by going to the <a href="<!--% hub_baseurl %-->calendar.php">Calendar</a> page. Once you have selected a date you will be redirected to the <a href="<!--% absolute_url(baseurl,'request.html') %-->">request page</a>, where you will be asked to select your show and email address. We will send a link to where you can upload your show to this address and therefore it must be a valid working address that you can access quickly. We intend to use <a href="https://www.gnupg.org/">GPG</a> to speed up the validation of hosts, so you may wish to use an email address that has an associated public key available on public key servers.
</p>
<p>
The audio of your show will not be moderated, however <em>the information provided in the upload form <strong>may be moderated</strong></em>. All publicly facing material is managed by the HPR Community as a whole, and not just the host providing the show. The show <a href="<!--% absolute_url(baseurl) %-->eps/hpr2210/index.html">hpr2210 :: On Freedom of Speech and Censorship</a> describes the agreed approach to this topic.
The audio of your show will not be moderated, however <em>the information provided in the upload form <strong>may be moderated</strong></em>. All publicly facing material is managed by the HPR Community as a whole, and not just the host providing the show. The show <a href="<!--% absolute_url(baseurl,'eps/hpr2210/index.html') %-->">hpr2210 :: On Freedom of Speech and Censorship</a> describes the agreed approach to this topic.
</p>
<p><strong>Note:</strong> This email address will be published on the HPR website and will be given out in the feeds, so please use a <strong>public email</strong> address for this purpose. Where we publish it we pad it with dot nospam at-sign nospam dot. <br />
i.e. <em>hpr@example.com</em> becomes <em>hpr.nospam@nospam.example.com</em>. If you do not want to have your email exposed, please contact the admin@hpr team to arrange a alias.
@ -52,7 +52,7 @@
<li id="Short_Summary"><strong>Summary:</strong> <em>Mandatory</em><br />
This is a short 100 character summary of what your show is about. Please fill this out as it is used once the show has gone off the main page, on the mobile site, on printed brochures, on text to speech announcements, on twitter, mastodon etc.</li>
<li id="Theme"><strong>Theme:</strong> <em>Automatic</em><br />
The <a href="<!--% absolute_url(baseurl) %-->theme.html#intro">Intro</a>, and the <a href="<!--% absolute_url(baseurl) %-->theme.html#outro">Outro</a> will be added automatically. Please do not add it.
The <a href="<!--% absolute_url(baseurl,'theme.html#intro') %-->">Intro</a>, and the <a href="<!--% absolute_url(baseurl,'theme.html#outro') %-->">Outro</a> will be added automatically. Please do not add it.
</li>
<li id="Explicit"><strong>Explicit:</strong> <em>Mandatory</em><br />
See <a href="http://www.apple.com/uk/itunes/podcasts/specs.html#submitting">iTunes</a> for more information.</li>
@ -104,7 +104,7 @@
</li>
<li id="series"><strong>Series:</strong> <em>Optional</em><br />
Select the <a href="<!--% absolute_url(baseurl) %-->series.html">series</a> if any that your show is a part of.
Select the <a href="<!--% absolute_url(baseurl,'series.html') %-->">series</a> if any that your show is a part of.
</li>
<li id="tags"><strong>Tags:</strong> <em>Optional</em><br />
Add a list of comma separated tags. Pick the most important words from the shownotes. These are used to <a href="http://hackerpublicradio.org/tags.php">find shows via the tags page</a>.

View File

@ -15,7 +15,7 @@
<li>Music Theory</li>
<li>Installing a VPN to your home network</li>
<li>Init and System.d</li>
<li>Episodes for the <a href="<!--% absolute_url(baseurl) %-->series/0007.html">LPI</a>, or the Networking series.</li>
<li>Episodes for the <a href="<!--% absolute_url(baseurl,'series/0007.html') %-->">LPI</a>, or the Networking series.</li>
<li><a href="http://opensourcemusician.com/index.php/Beginning_Audio_Series_for_HPR_and_OSMP_Release">Beginning Audio Series for HPR and OSMP Release</a></li>
<li>Hackintosh computers - what are they, why would you want one.</li>
<li>Grub 2.0 introduction and customization.</li>
@ -23,8 +23,8 @@
<li>How I Got Into Accessible Computing</li>
<li>How to do knitting</li>
<li>How to build a house</li>
<li>Bitcoin howto <a href="<!--% absolute_url(baseurl) %-->eps/hpr0788/index.html">hpr0788</a></li>
<li>How to solder <a href="<!--% absolute_url(baseurl) %-->eps/hpr1037/index.html">hpr1037</a>, <a href="<!--% absolute_url(baseurl) %-->eps/hpr1047/index.html">hpr1047</a></li>
<li>Bitcoin howto <a href="<!--% absolute_url(baseurl,'eps/hpr0788/index.html') %-->">hpr0788</a></li>
<li>How to solder <a href="<!--% absolute_url(baseurl,'eps/hpr1037/index.html') %-->">hpr1037</a>, <a href="<!--% absolute_url(baseurl,'eps/hpr1047/index.html') %-->">hpr1047</a></li>
<li>How to weld</li>
<li>How to fix a car</li>
<li>Reviews of stream playing software, (for linuxheads who don't want to keep a browser tab open all the time)</li>

View File

@ -81,7 +81,7 @@
<nav class="column">
<h2>Social</h2>
<ul>
<li><a href="<!--% absolute_url(baseurl) %-->/maillist" >Mailing list</a></li>
<li><a href="<!--% absolute_url(baseurl,'/maillist') %-->" >Mailing list</a></li>
<li><a href="https://botsin.space/@hpr" >Mastodon</a></li>
<li><a href="https://matrix.to/#/#hpr:matrix.org" >Matrix</a></li>
<li><a href="mumble://chatter.skyehaven.net:64738/Hacker%20Public%20Radio?version=1.2.0" >Mumble</a></li>

View File

@ -45,6 +45,20 @@
<!--% iso8601_date.format(date_to_format) %-->
<!--% END %-->
<!--% MACRO absolute_url(base, path) BLOCK %-->
<!--% UNLESS base.empty %-->
<!--% UNLESS base.substr(-1) == '/' %-->
<!--% base = base _ '/' %-->
<!--% END %-->
<!--% END %-->
<!--% UNLESS path.empty %-->
<!--% IF path.substr(0,1) == '/' %-->
<!--% path = path.substr(1) %-->
<!--% END %-->
<!--% END %-->
<!--% base _ path %-->
<!--% END %-->
<!--% MACRO absolute_path(baseurl) BLOCK %-->
<!--% IF baseurl %-->./<!--% ELSE %-->/<!--% END %-->
<!--% END %-->