diff --git a/public_html/css/hpr.css b/public_html/css/hpr.css index 71668cd..10f155c 100644 --- a/public_html/css/hpr.css +++ b/public_html/css/hpr.css @@ -4,275 +4,491 @@ https://creativecommons.org/publicdomain/ */ +/* + * See the following for the modern CSS responsive design techniques used in this file: + * - MDN web docs: Responsive design + * -- https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Responsive_Design + * - Matthew James Tayler: Responsive Font Size (Optimal Text at Every Breakpoint) + * -- https://matthewjamestaylor.com/responsive-font-size + * - CSS-Tricks: Linearly Scale font-size with CSS clamp() Based on the Viewport + * -- https://css-tricks.com/linearly-scale-font-size-with-css-clamp-based-on-the-viewport/ +*/ -p.meta span label { font-weight: bold; } -@media only screen and (min-width: 479px) { - -body {background: #dfdfdf;} -div, h1, h2, h3, h4, h5, h6, p, ul, ol, li, dl, dt, dd, img, form, fieldset, input, textarea, blockquote { - font-family: Verdana, Arial, Helvetica, sans-serif;/* 1em/1.5 OpenDyslexic, */ - color: #4D4D4D; /* HPR Grey */ - background: white; +html { + margin: 0; + padding: 0; + display: block; } +body { + display: block; + background: #dfdfdf; + font-size: 1rem; /* fallback for browsers that don't support the clamp function) */ + font-size: clamp(1rem, 15px + 0.3vw, 1.07rem); + margin: 0; + padding: 0; +} -#container { - width: 100%; - max-width: 58em; - margin: auto; - overflow: hidden; - padding: .5em; - border: thin solid; +div, +h1, +h2, +h3, +h4, +h5, +h6, +p, +ul, +ol, +li, +dl, +dt, +dd, +img, +form, +fieldset, +input, +textarea, +blockquote { + font-family: Verdana, Arial, Helvetica, sans-serif; /* 1em/1.5 OpenDyslexic, */ + color: #4D4D4D; /* HPR Grey */ background: white; } -.shadow { - -moz-box-shadow: 2px 3px 6px 3px #675958; - -webkit-box-shadow: 2px 3px 6px 3px #675958; - box-shadow: 2px 3px 6px 3px #675958;} - -#hprlogo { - display: block; - position: relative; - top: 0; - left: 0; - border: 0; - margin: 0.75em; - float:left; +h1 { + font-size: 1.5rem; + margin: 1.25rem 0 0.75rem 0; } -#hpr_banner { - display: block; - position: relative; - border: 0; - margin: 0.75em; - float: left; +h2, +article * h1 { + font-size: 1.45rem; + margin: 1.25rem 0 0.75rem 0; } -#hpr_banner h1 {margin: -.25em 0em -.5em 0em;} -#hpr_banner h2 {font-size: 100%; font-weight: lighter; } -#hpr_banner h3 {font-size: 90%; font-weight: lighter; } - -#accessible_menu { - font-size: small; +h3, +article * h2 { + font-size: 1.25rem; + margin: 1.25rem 0 0.75rem 0; } -/* The main navigation menu */ -.menu { - background: #4D4D4D; /* HPR Grey */ - text-align: Left; - clear:both; /* Forces the menu to appear after the HPR Header block */ - padding: 0em 0em; - margin: 0em 0em; +h4, +article * h3 { + font-size: 1.15rem; + margin: 1.25rem 0 0.75rem 0; } -.menu ul ul { /* Causes the sub menus not to be displayed, until hover shows them */ - display: none; +img { + max-width: 100%; + height: auto; } -#main_menu li a {display: block;} - -.menu ul li { padding: .25em 0em;} - +ul { + padding-left: 1.15rem; } -.menu ul { /* The menu bar background across screen */ - background: #4D4D4D; /* HPR Grey */ - color: white; - padding: 0 10px; /* Keeps sub menus to the left */ - list-style: none; - position: relative; - margin: 0; - display: inline-table; +li { + line-height: 1.25; } -.menu ul:after { /* Forces the dropdown to be a block with non float */ - content: ""; - clear: both; - display: block; +a { + text-decoration: none; } -.menu ul li { - background: #4D4D4D; /* HPR Grey */ - color: white; - float: left; - padding: .5em 1em; +a:hover { + cursor: pointer; } -.menu ul li a { - background: #4D4D4D; /* HPR Grey */ - color: white; - display: block; - text-decoration: none; -} - -.menu ul ul { - background: #4D4D4D; /* HPR Grey */ - color: white; - padding: 0; - position: absolute; - top: 100%; -} - -.menu ul ul li { - background: #4D4D4D; /* HPR Grey */ - color: white; - float: none; - position: relative; -} - -.menu ul ul ul { - position: absolute; - left: 100%; - top:0; -} - - hr { - background: #4D4D4D; /* HPR Grey */ - border: 0; - height: 0.25em; + background: #4D4D4D; + border: 0; + height: 0.25em; } -/* The multi colum footer layout */ - -#footer_page { - width:100%; +audio { + padding: .7em 0em .5em 0em; + clear: both; + position: relative; + z-index: auto; } -.column { - width:12%; - background-color: white; - color: #4D4D4D; /* HPR Grey */ - float:left; - margin:0 10px; - display: block; +.audcredit { + font-size: 75%; + margin-bottom: 1em; } -.column li { - list-style:none; - padding: .25em 0em; - font-size: 85%; +p.meta { + line-height: 1.25; +} + +p.meta span label { + font-weight: bold; +} + +article>p, +#maincontent>p { + line-height: 1.45; +} + +article#previous_five_weeks>* { + line-height: 1.35; + margin: 0; + padding: 0; +} + +article#previous_five_weeks>h3 { + margin: 1.5rem 0 0.5rem 0; +} + +#container { + max-width: 58rem; + margin: 0.25rem; + padding: 0.75rem; /* fallback for browsers that don't support the clamp function) */ + padding: clamp(0.75rem, -0.25rem + 3vw, 2.0rem); + overflow: hidden; + background: white; + border: thin solid #4D4D4D; +} + +.shadow { + -moz-box-shadow: 2px 3px 6px 3px #675958; + -webkit-box-shadow: 2px 3px 6px 3px #675958; + box-shadow: 2px 3px 6px 3px #675958; } .thick_bar { - width:100%; - background-color: #4D4D4D; /* HPR Grey */ - color: white; - float:left; - clear: both; - height:1.5em; - padding: .5em 0em .5em 0em; - font-size: 1em; - margin: 1em 0em 1em 0em; + background-color: #4D4D4D; + color: white; + padding: 0.5rem; + margin: 1rem 0 1rem 0; } -#more_info {margin: auto;} -nav.column { display: block; padding: 0em 1em 0em 1em;} -#copyright { - font-size: small; - width:100%; - float:left; +img#hprlogo { + max-width: 20vw; + padding-right: clamp(0.75rem, -0.25rem + 3vw, 1.5rem); + float: left; + margin-top: 1rem; + margin-bottom: clamp(0.75rem, -0.25rem + 2vw, 1.5rem); } -article, #copyright p { - padding: 0 10px; +#hpr_banner { + /* display: inline-block; */ + border: 0; + margin: 0 0 0rem 0; + padding: 0; } -audio {padding: .7em 0em .5em 0em; clear: both; position: relative; z-index:auto;} -.audcredit { font-size: 75%;margin-bottom: 1em;} -h1.showtitle { font-size: 125%;} - -/* Full Index Page styling */ -#index_full h2.title { - font-weight: lighter; - margin-bottom: -.5em; - padding: .5em 0em 0em 0em; - font-size: 110%;} - -#index_full p.meta {font-size: 85%;} - -#small { - font-size: small; +#hpr_banner p { + margin: 0 0 0.5rem 0; } -p.author { font-size: 85%;} -p.shownotes { padding: .5em;} -#maincontent footer p { /* font-size: 75%; */ margin-bottom: 1em;} -/* link styling */ -a:link {text-decoration: none;} - -table { - width:100%; -} -table, th, td { - border-collapse: collapse; - padding: 2px; - text-align: left; -} -table#t01, table#t01 th, table#t01 td { - border: 1px solid black; -} -table#t01 th, table#t01 td { - padding: 5px; - text-align: left; -} -table#t01 tr:nth-child(even) { - background-color: #eee; -} -table#t01 tr:nth-child(odd) { - background-color:#fff; -} -table#t01 th { - background-color: #4D4D4D; - color: white; +#hpr_banner h1#sitename { + font-size: clamp(1.44rem, -1rem + 3vw, 2rem); + letter-spacing: 0.06rem; + margin: 0; + padding: 0; } -pre { /* Add background, border and scrollbar to
 */
-    background: #eee;
-    border: 1px solid #ddd;
-    overflow: auto;
-    clear: both;
+#hpr_banner h2 {
+	font-size: clamp(0.74rem, -1rem + 2vw, 1rem);
+	font-weight: 510;
+	margin: 0 0 1rem 0;
+	padding: 0;
 }
 
-table.hosts {
-	background: white
+#hpr_banner h3 {
+	font-size: 1rem;
+	font-weight: normal;
+	margin: 0 0 0.5rem 0;
+	padding: 0;
+}
+
+header>hr {
+	clear: both;
+}
+
+#accessible_menu {
+	font-size: smaller;
+}
+
+/* The main navigation menu */
+header>nav.menu {
+	display: block;
+	background-color: #4D4D4D; /* HPR Grey */
+	text-align: Left;
+	clear: both; /* Forces the menu to appear after the HPR Header block */
+	padding: 0;
+	margin: 0;
+}
+
+header>nav.menu ul {
+	margin: 0;
+	padding: 0.5rem;
+	background-color: inherit;
+	color: white;
+}
+
+header>nav.menu ul li {
+	display: inline-block;
+	background-color: inherit;
+	color: inherit;
+	line-height: 1.5;
+	margin: 0;
+	padding: 0;
+	padding-right: clamp(0.5rem, -0.25rem + 3vw, 2.5rem);
+}
+
+header>nav.menu ul li a {
+	color: white;
+	text-decoration: none;
+	display: block;
+	padding: 0.25rem 0;
+}
+
+header>nav.menu ul li a:hover {
+	border-bottom: thin solid white;
+	padding: 0.15rem 0;
+	-webkit-transition: 0.3s ease-in-out color;
+	-moz-transition: 0.3s ease-in-out color;
+	transition: 0.3s ease-in-out color;
+}
+
+header>nav.menu ul li a:visited {
+	color: #EDEDED;
+}
+
+a:active,
+header>nav.menu ul li a:active {
+	color: red;
+}
+
+pre {
+	/* Add background, border and scrollbar to 
 */
+	background: #eee;
+	border: 1px solid #ddd;
+	overflow: auto;
+	clear: both;
+	padding: 0.5rem
+}
+
+pre code {
+	padding-right: 0.5rem;
+	font-size: 0.85rem;
+	line-height: 1;
 }
-table.hosts tr:nth-child(even) { background-color:#cccccc; }
-table.hosts tr:nth-child(odd) { background-color:white; }
-table.hosts tr td img { vertical-align:middle }
 
 pre.comment {
 	white-space: pre-wrap;
-	padding: 2px;
 	line-height: 1.2rem;
 }
 
-h3.title { margin: 1.25rem 0 0.75rem 0 }
-p.meta { margin: 0.25rem 0 }
-p.summary { margin: 0.25rem 0 }
-p.listen-in { margin-top: 0 }
+table.hosts {
+	font-size: clamp(0.82rem, -0.25rem + 3vw, 1.0rem);
+	width: 100%;
+	background: white;
+	margin: 0 auto;
+	border-collapse: collapse;
+	display: inline-table;
 
-@media only screen and (max-width: 680px) { 
-	#container {width: 95%;}
-	img#hprlogo {float: left; max-width: 85px; padding: .35em;}
-	.column {width: 15%;}
-	h1 {font-size: 140%;}
-	h2 {font-size: 120%;}
-	h3 {font-size: 100%;}
-	nav.column { display: block; padding: 0em .25em 0em .25em;}
-	#footer_page li {font-size: 85%; padding: .5em .25em .5em .25em;}
-	footer p {font-size: 75%;}
-	audio {float: none; }
 }
 
-@media only screen and (max-width: 479px) { 
-	body {background: #ffffff; color: #4D4D4D; font-family: Verdana, Arial, Helvetica, sans-serif;/* 1em/1.5 OpenDyslexic, */}
-	li {font-size: 100%; padding: .75em 0em .75em 0em; margin-left: -.25em;}
-	img#hprlogo {float: left; max-width: 65px; padding: .35em;}
-	.column {width: auto;}
-	h1#sitename { clear: both;}
-	a:link {text-decoration: none;}
-	audio {padding: .7em 0em .5em 0em; width: 95%; max-width: 300px;}
-	.audcredit { font-size: 65%; margin-bottom: 1em;}
+table.hosts tr:nth-child(even) {
+	background-color: #cccccc;
+	border-bottom: thick solid white;
 }
+
+table.hosts tr:nth-child(odd) {
+	background-color: white;
+	border-bottom: thick solid white;
+}
+
+table.hosts tr td img {
+	vertical-align: middle;
+	max-height: 80px;
+}
+
+table.hosts th:first-child,
+table.hosts td:first-child {
+	min-width: 60px;
+	max-width: 80px;
+	text-align: left;
+}
+
+table.hosts th:nth-child(2),
+table.hosts td:nth-child(2) {
+	text-align: left;
+	padding-left: clamp(0.15rem, -0.25rem + 3vw, 0.5rem);
+}
+
+table.hosts th:nth-child(3),
+table.hosts td:nth-child(3),
+table.hosts th:nth-child(4),
+table.hosts td:nth-child(4) {
+	width: 10%;
+	padding-right: clamp(0.10rem, -0.25rem + 3vw, 1rem);
+}
+
+body>div>footer {
+	margin-top: 2rem;
+}
+
+footer #more_info nav.column {
+	clear: both;
+	font-size: 0.9rem;
+	margin-left: 0.5rem;
+}
+
+footer #more_info nav.column ul li {
+	float: left;
+	margin-right: 1.5rem;
+	margin-bottom: 1rem;
+}
+
+footer #more_info nav.column h2 {
+	font-size: 1.35rem;
+	margin-top: 0.5rem;
+}
+
+footer h1.thick_bar {
+	clear: left;
+	font-size: 1.15rem;
+}
+
+footer #copyright {
+	font-size: smaller;
+	margin-left: 0.5rem;
+	margin-right: 0.5rem;
+}
+
+fieldset>table,
+fieldset>table thead,
+fieldset>table tbody,
+fieldset>table tr,
+fieldset>table th,
+fieldset>table td,
+fieldset>table td input,
+fieldset>table td textarea {
+	display: block;
+	font-size: 1rem;
+}
+
+fieldset>table {
+	width: calc(100vw + -16vw + -1rem);
+	max-width: 100%;
+}
+
+fieldset>table td input,
+fieldset>table td textarea {
+	width: calc(100vw + -16vw + -1.5rem);
+	max-width: 100%;
+	border: thin solid #DFDFDF;
+	margin-bottom: 0.5rem;
+	padding: 0.5rem;
+}
+
+fieldset>table td select {
+	margin-bottom: 0.5rem;
+	padding: 0.25rem;
+}
+
+fieldset>table td input[type="radio"] {
+	display: initial;
+	width: initial;
+	margin-bottom: 0.5rem;
+}
+
+fieldset>input {
+	background: #4D4D4D;
+	color: white;
+	font-weight: 600;
+	padding: 0.5rem;
+	border: thin solid #DFDFDF;
+	border-radius: 0.2rem;
+}
+
+@media only screen and (min-width: 58rem) {
+	#container {
+		margin: 0.5rem auto;
+	}
+
+	.shadow {
+		-moz-box-shadow:    1px 2px 5px 2px #675958;
+		-webkit-box-shadow: 1px 2px 5px 2px #675958;
+		box-shadow:         1px 2px 5px 2px #675958;
+	}
+
+	img#hprlogo {
+		margin-bottom: 1.5rem;
+	}
+
+	#hpr_banner {
+		float: left;
+	}
+
+	#hpr_banner h1#sitename {
+		font-size: 2rem;
+	}
+
+	#hpr_banner h2 {
+		font-size: 1rem;
+	}
+
+	header>hr {
+		clear: right;
+	}
+
+	footer #more_info nav.column {
+		clear: none;
+		float: left;
+		width: 19.5%;
+		margin-left: 0;
+	}
+
+	footer #more_info nav.column:first-child {
+		margin-left: 0.5rem;
+	}
+
+	footer #more_info nav.column ul li {
+		float: none;
+		margin-bottom: 0.5rem;
+	}
+
+	fieldset>table,
+	fieldset>table thead,
+	fieldset>table tbody,
+	fieldset>table tr,
+	fieldset>table th,
+	fieldset>table td,
+	fieldset>table td input,
+	fieldset>table td textarea {
+		display: revert;
+		width: revert;
+	}
+
+	fieldset>table tr {
+		vertical-align: baseline;
+	}
+
+	fieldset>table tr:nth-child(3) {
+		vertical-align: top;
+	}
+
+	fieldset>table tr:nth-child(3) td:first-child {
+		padding-top: 0.5rem;
+	}
+
+	fieldset>table tr:nth-last-child(3) td:first-child {
+		padding-top: 1rem;
+	}
+
+	fieldset>table tr:nth-last-child(2) {
+		vertical-align: top;
+	}
+
+	fieldset>table tr:nth-last-child(2) td:first-child {
+		padding-top: 0.75rem;
+	}
+
+	fieldset>table td input[type="radio"] {
+		margin-top: 1.5rem;
+	}
+}
\ No newline at end of file
diff --git a/site.cfg b/site.cfg
index 2676970..fdaf12e 100644
--- a/site.cfg
+++ b/site.cfg
@@ -97,6 +97,10 @@ content: content-episode.tpl.html
 multipage: true
 filename: eps/hpr[id]/index.html
 
+[download]
+navigation: navigation-get-shows.tpl.html
+content: content-download.tpl.html
+
 [syndication]
 navigation: navigation-get-shows.tpl.html
 content: content-syndication.tpl.html
@@ -124,6 +128,10 @@ media_baseurl: https://www.hackerpublicradio.org/eps/
 navigation: navigation-about.tpl.html
 content: content-mumble-howto.tpl.html
 
+[contact]
+navigation: navigation-about.tpl.html
+content: content-contact.tpl.html
+
 [promote]
 navigation: navigation-about.tpl.html
 content: content-promote.tpl.html 
diff --git a/templates/content-contact.tpl.html b/templates/content-contact.tpl.html
new file mode 100644
index 0000000..6f90661
--- /dev/null
+++ b/templates/content-contact.tpl.html
@@ -0,0 +1,21 @@
+
+
+

Contact

+
+

We are always looking for more hosts...

+ +

Mail List

+

+ HPR is governed by the community, so decisions about how Hacker Public Radio should be run are made on the mailing list you can join it by going to :
+         http://www.hackerpublicradio.org/maillist +

+
diff --git a/templates/content-correspondents.tpl.html b/templates/content-correspondents.tpl.html index 21badfe..fd68237 100644 --- a/templates/content-correspondents.tpl.html +++ b/templates/content-correspondents.tpl.html @@ -18,7 +18,7 @@ on h.hostid = e.hostid order by h.host' ) %--> - +
diff --git a/templates/content-download.tpl.html b/templates/content-download.tpl.html new file mode 100644 index 0000000..88aff59 --- /dev/null +++ b/templates/content-download.tpl.html @@ -0,0 +1,56 @@ +
+
+

Download Archive

+

Please be aware that our Archive exceeds 62Gb (Ogg: 21Gb, Spx: 16Gb, mp3: 25Gb). We are happy for you to download them, but please make sure that you are not going to incur additional bandwidth charges on your side.

+

We will be happy to post you DVD's of the episodes anywhere in the world if bandwidth is an issue.

+
+

Full Episode Guide

+

+ The compete episode guide is available to you, and it lists all the shows on one page going right back to the very first episode. +

+

Command line download

+

+ You can download the audio of the episodes directly from the command line using the following commands: +

+
    +
  • ogg:
    + curl 'https://www.hackerpublicradio.org/eps/hpr[0001-3657].ogg' -o "hpr#1.ogg"
  • +
  • spx:
    + curl 'https://www.hackerpublicradio.org/eps/hpr[0001-3657].spx' -o "hpr#1.spx"
  • +
  • mp3:
    + curl 'https://www.hackerpublicradio.org/eps/hpr[0001-3657].mp3' -o "hpr#1.mp3"
  • + +
+

Full RSS feed, BitTorrent and Magnet links

+

The full rss feed is updated daily and contains the complete show note with links to supporting articles. The torrent/magnet also contains this information and is a snaphot of the archive taken between 2007 and November 2013.

+ +

Direct download of the remaining shows

+

+ You can download the remaining episodes since the torrent was created directly from the command line using the following commands: +

+
    +
  • ogg:
    + curl 'https://www.hackerpublicradio.org/eps/hpr[1391-3657].ogg' -o "hpr#1.ogg" +
  • + +
+
    +
  • spx:
    + curl 'https://www.hackerpublicradio.org/eps/hpr[1391-3657].spx' -o "hpr#1.spx" +
  • + +
+
    +
  • mp3:
    + curl 'https://www.hackerpublicradio.org/eps/hpr[1391-3657].mp3' -o "hpr#1.mp3" +
  • + +
+
+

Big to DeepGeek and the team for providing the BitTorrent service.

+
+
diff --git a/templates/content-index.tpl.html b/templates/content-index.tpl.html index 1c9b563..b40c545 100644 --- a/templates/content-index.tpl.html +++ b/templates/content-index.tpl.html @@ -69,7 +69,7 @@ -
+

Previous five weeks

diff --git a/templates/page.tpl.html b/templates/page.tpl.html index 47d72c7..8008f89 100644 --- a/templates/page.tpl.html +++ b/templates/page.tpl.html @@ -67,7 +67,7 @@