Merge branch 'main' into i217-implement-promote-hpr-page

This commit is contained in:
Roan Horning 2024-10-14 21:31:44 -04:00
commit ef17c94d58
Signed by: rho_n
GPG Key ID: 234AEF20B72D5769
7 changed files with 519 additions and 219 deletions

View File

@ -4,275 +4,491 @@
https://creativecommons.org/publicdomain/ 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; } html {
@media only screen and (min-width: 479px) { margin: 0;
padding: 0;
body {background: #dfdfdf;} display: block;
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;
} }
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 { div,
width: 100%; h1,
max-width: 58em; h2,
margin: auto; h3,
overflow: hidden; h4,
padding: .5em; h5,
border: thin solid; 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; background: white;
} }
.shadow { h1 {
-moz-box-shadow: 2px 3px 6px 3px #675958; font-size: 1.5rem;
-webkit-box-shadow: 2px 3px 6px 3px #675958; margin: 1.25rem 0 0.75rem 0;
box-shadow: 2px 3px 6px 3px #675958;}
#hprlogo {
display: block;
position: relative;
top: 0;
left: 0;
border: 0;
margin: 0.75em;
float:left;
} }
#hpr_banner { h2,
display: block; article * h1 {
position: relative; font-size: 1.45rem;
border: 0; margin: 1.25rem 0 0.75rem 0;
margin: 0.75em;
float: left;
} }
#hpr_banner h1 {margin: -.25em 0em -.5em 0em;} h3,
#hpr_banner h2 {font-size: 100%; font-weight: lighter; } article * h2 {
#hpr_banner h3 {font-size: 90%; font-weight: lighter; } font-size: 1.25rem;
margin: 1.25rem 0 0.75rem 0;
#accessible_menu {
font-size: small;
} }
/* The main navigation menu */ h4,
.menu { article * h3 {
background: #4D4D4D; /* HPR Grey */ font-size: 1.15rem;
text-align: Left; margin: 1.25rem 0 0.75rem 0;
clear:both; /* Forces the menu to appear after the HPR Header block */
padding: 0em 0em;
margin: 0em 0em;
} }
.menu ul ul { /* Causes the sub menus not to be displayed, until hover shows them */ img {
display: none; max-width: 100%;
height: auto;
} }
#main_menu li a {display: block;} ul {
padding-left: 1.15rem;
.menu ul li { padding: .25em 0em;}
} }
.menu ul { /* The menu bar background across screen */ li {
background: #4D4D4D; /* HPR Grey */ line-height: 1.25;
color: white;
padding: 0 10px; /* Keeps sub menus to the left */
list-style: none;
position: relative;
margin: 0;
display: inline-table;
} }
.menu ul:after { /* Forces the dropdown to be a block with non float */ a {
content: ""; text-decoration: none;
clear: both;
display: block;
} }
.menu ul li { a:hover {
background: #4D4D4D; /* HPR Grey */ cursor: pointer;
color: white;
float: left;
padding: .5em 1em;
} }
.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 { hr {
background: #4D4D4D; /* HPR Grey */ background: #4D4D4D;
border: 0; border: 0;
height: 0.25em; height: 0.25em;
} }
/* The multi colum footer layout */ audio {
padding: .7em 0em .5em 0em;
#footer_page { clear: both;
width:100%; position: relative;
z-index: auto;
} }
.column { .audcredit {
width:12%; font-size: 75%;
background-color: white; margin-bottom: 1em;
color: #4D4D4D; /* HPR Grey */
float:left;
margin:0 10px;
display: block;
} }
.column li { p.meta {
list-style:none; line-height: 1.25;
padding: .25em 0em; }
font-size: 85%;
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 { .thick_bar {
width:100%; background-color: #4D4D4D;
background-color: #4D4D4D; /* HPR Grey */ color: white;
color: white; padding: 0.5rem;
float:left; margin: 1rem 0 1rem 0;
clear: both;
height:1.5em;
padding: .5em 0em .5em 0em;
font-size: 1em;
margin: 1em 0em 1em 0em;
} }
#more_info {margin: auto;} img#hprlogo {
nav.column { display: block; padding: 0em 1em 0em 1em;} max-width: 20vw;
#copyright { padding-right: clamp(0.75rem, -0.25rem + 3vw, 1.5rem);
font-size: small; float: left;
width:100%; margin-top: 1rem;
float:left; margin-bottom: clamp(0.75rem, -0.25rem + 2vw, 1.5rem);
} }
article, #copyright p { #hpr_banner {
padding: 0 10px; /* 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;} #hpr_banner p {
.audcredit { font-size: 75%;margin-bottom: 1em;} margin: 0 0 0.5rem 0;
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;
} }
p.author { font-size: 85%;} #hpr_banner h1#sitename {
p.shownotes { padding: .5em;} font-size: clamp(1.44rem, -1rem + 3vw, 2rem);
#maincontent footer p { /* font-size: 75%; */ margin-bottom: 1em;} letter-spacing: 0.06rem;
/* link styling */ margin: 0;
a:link {text-decoration: none;} padding: 0;
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;
} }
pre { /* Add background, border and scrollbar to <pre> */ #hpr_banner h2 {
background: #eee; font-size: clamp(0.74rem, -1rem + 2vw, 1rem);
border: 1px solid #ddd; font-weight: 510;
overflow: auto; margin: 0 0 1rem 0;
clear: both; padding: 0;
} }
table.hosts { #hpr_banner h3 {
background: white 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 <pre> */
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 { pre.comment {
white-space: pre-wrap; white-space: pre-wrap;
padding: 2px;
line-height: 1.2rem; line-height: 1.2rem;
} }
h3.title { margin: 1.25rem 0 0.75rem 0 } table.hosts {
p.meta { margin: 0.25rem 0 } font-size: clamp(0.82rem, -0.25rem + 3vw, 1.0rem);
p.summary { margin: 0.25rem 0 } width: 100%;
p.listen-in { margin-top: 0 } 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) { table.hosts tr:nth-child(even) {
body {background: #ffffff; color: #4D4D4D; font-family: Verdana, Arial, Helvetica, sans-serif;/* 1em/1.5 OpenDyslexic, */} background-color: #cccccc;
li {font-size: 100%; padding: .75em 0em .75em 0em; margin-left: -.25em;} border-bottom: thick solid white;
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(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;
}
}

View File

@ -97,6 +97,10 @@ content: content-episode.tpl.html
multipage: true multipage: true
filename: eps/hpr[id]/index.html filename: eps/hpr[id]/index.html
[download]
navigation: navigation-get-shows.tpl.html
content: content-download.tpl.html
[syndication] [syndication]
navigation: navigation-get-shows.tpl.html navigation: navigation-get-shows.tpl.html
content: content-syndication.tpl.html content: content-syndication.tpl.html
@ -124,6 +128,10 @@ media_baseurl: https://www.hackerpublicradio.org/eps/
navigation: navigation-about.tpl.html navigation: navigation-about.tpl.html
content: content-mumble-howto.tpl.html content: content-mumble-howto.tpl.html
[contact]
navigation: navigation-about.tpl.html
content: content-contact.tpl.html
[promote] [promote]
navigation: navigation-about.tpl.html navigation: navigation-about.tpl.html
content: content-promote.tpl.html content: content-promote.tpl.html

View File

@ -0,0 +1,21 @@
<article>
<header>
<h1>Contact</h1>
</header>
<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="http://www.hackerpublicradio.org" target="_blank">www.hackerpublicradio.org</a></li>
<li>Mailist: <a href="http://www.hackerpublicradio.org/maillist" target="_blank">Maillist</a></li>
<li><a href="https://web.libera.chat/gamja/?channels=oggcastplanet" target="_blank">#oggcastplanet</a></li>
<li><a href="https://www.facebook.com/home.php?sk=group_130169220378872¬if_t=group_r2j" target="_blank">Facebook</a></li>
<li><a href="https://www.linkedin.com/company/hackerpublicradio/" target="_blank">Linked-In</a></li>
<li><a href="http://itunes.apple.com/us/podcast/hacker-public-radio/id281699640" target="_blank">iTunes</a></li>
</ul>
<h2>Mail List</h2>
<p>
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 :<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.hackerpublicradio.org/maillist">http://www.hackerpublicradio.org/maillist</a>
</p>
</article>

View File

@ -18,7 +18,7 @@
on h.hostid = e.hostid on h.hostid = e.hostid
order by h.host' order by h.host'
) %--> ) %-->
<tr height="80"> <tr>
<td><!--% get_avatar(host.hostid, host.host, host_cnt > 8) %--></td> <td><!--% get_avatar(host.hostid, host.host, host_cnt > 8) %--></td>
<td><strong><!--% host.host %--></strong><br> <td><strong><!--% host.host %--></strong><br>

View File

@ -0,0 +1,56 @@
<article>
<header>
<h1>Download Archive</h1>
<p>Please be aware that our Archive exceeds <strong>62Gb</strong> <em>(Ogg: 21Gb, Spx: 16Gb, mp3: 25Gb)</em>. 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.</p>
<p>We will be happy to post you DVD's of the episodes anywhere in the world if bandwidth is an issue.</p>
</header>
<h2>Full Episode Guide</h2>
<p>
The <a href="./eps/index.html">compete episode guide</a> is available to you, and it lists all the shows on one page going right back to the very first episode.
</p>
<h2>Command line download</h2>
<p>
You can download the audio of the episodes directly from the command line using the following commands:
</p>
<ul>
<li>ogg:<br />
<span style="font-family:monospace;">curl 'https://www.hackerpublicradio.org/eps/hpr[0001-3657].ogg' -o "hpr#1.ogg"</span></li>
<li>spx:<br />
<span style="font-family:monospace;">curl 'https://www.hackerpublicradio.org/eps/hpr[0001-3657].spx' -o "hpr#1.spx"</span></li>
<li>mp3:<br />
<span style="font-family:monospace;">curl 'https://www.hackerpublicradio.org/eps/hpr[0001-3657].mp3' -o "hpr#1.mp3"</span></li>
</li>
</ul>
<h2>Full RSS feed, BitTorrent and Magnet links</h2>
<p>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. </p>
<ul>
<li><span style="font-family:monospace;">ogg: <a href="hpr_total_ogg_rss.php">rss</a>, <a href="https://www.talkgeektome.us/torrents/HPR-Ogg-2007-Nov2013.torrent">torrent</a>, <a href="magnet:?xt=urn:btih:390C66903BBB2B6A067C438C70B2E90988AA8207&dn=HPR-Ogg-2007-Nov2013&tr=http%3A%2F%2Ftracker.info-underground.net%3A16880%2Fannounce">magnet</a></span></li>
<li><span style="font-family:monospace;">spx: <a href="hpr_total_spx_rss.php">rss</a>, <a href="https://www.talkgeektome.us/torrents/HPR-Mp3-2007-Nov2013.torrent">torrent</a>, <a href="magnet:?xt=urn:btih:E2573BEF0209B8C2E3C7908BAF220EC34D4A5B8E&dn=HPR-Speex-2007-Nov2013&tr=http%3A%2F%2Ftracker.info-underground.net%3A16880%2Fannounce">magnet</a></span></li>
<li><span style="font-family:monospace;">mp3: <a href="hpr_total_rss.php">rss</a>, <a href="https://www.talkgeektome.us/torrents/HPR-Mp3-2007-Nov2013.torrent">torrent</a>, <a href="magnet:?xt=urn:btih:6E9492AD78BCCA2B8D6A42C9C0BCAB0E6FA778F8&dn=HPR-Mp3-2007-Nov2013&tr=http%3A%2F%2Ftracker.info-underground.net%3A16880%2Fannounce">magnet</a></span></li>
</ul>
<h3>Direct download of the remaining shows</h3>
<p>
You can download the remaining episodes since the torrent was created directly from the command line using the following commands:
</p>
<ul>
<li>ogg:<br />
<span style="font-family:monospace;">curl 'https://www.hackerpublicradio.org/eps/hpr[1391-3657].ogg' -o "hpr#1.ogg"</span>
</li>
</li>
</ul>
<ul>
<li>spx:<br />
<span style="font-family:monospace;">curl 'https://www.hackerpublicradio.org/eps/hpr[1391-3657].spx' -o "hpr#1.spx"</span>
</li>
</li>
</ul>
<ul>
<li>mp3:<br />
<span style="font-family:monospace;">curl 'https://www.hackerpublicradio.org/eps/hpr[1391-3657].mp3' -o "hpr#1.mp3"</span>
</li>
</li>
</ul>
<footer>
<p>Big to DeepGeek and the team for providing the BitTorrent service.</p>
</footer>
</article>

View File

@ -69,7 +69,7 @@
</article> </article>
<!--% host_cnt = host_cnt + 1 %--> <!--% host_cnt = host_cnt + 1 %-->
<!--% END %--> <!--% END %-->
<article> <article id="previous_five_weeks">
<header> <header>
<hr> <hr>
<h1>Previous five weeks</h1> <h1>Previous five weeks</h1>

View File

@ -67,7 +67,7 @@
</main> </main>
<footer id="footer_page"> <footer id="footer_page">
<h1 class="thick_bar"><span style="padding-left: 1em;">More Information...</span></h1> <h1 class="thick_bar">More Information...</h1>
<div id="more_info"> <div id="more_info">
<nav class="column"> <nav class="column">
<h2>Ancestry</h2> <h2>Ancestry</h2>
@ -133,7 +133,7 @@
</ul> </ul>
</nav> </nav>
</div><!-- more_info --> </div><!-- more_info -->
<h1 class="thick_bar"><span style="padding-left: 1em;">Copyright Information</span></h1> <h1 class="thick_bar">Copyright Information</h1>
<div id="copyright"> <div id="copyright">
<p> <p>
Unless otherwise stated, our shows are released under a <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"> Unless otherwise stated, our shows are released under a <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/">
@ -141,7 +141,6 @@
<p> <p>
The <span property="dct:title">HPR Website Design</span> is released to the <a rel="license" href="https://creativecommons.org/publicdomain/mark/1.0/">Public Domain</a>. The <span property="dct:title">HPR Website Design</span> is released to the <a rel="license" href="https://creativecommons.org/publicdomain/mark/1.0/">Public Domain</a>.
</p> </p>
<hr />
</div><!-- copyright --> </div><!-- copyright -->
<hr /> <hr />
</footer> </footer>