Corretto layout per la live. Ancora non riesco a caricare un video delle dimensioni corrette.

This commit is contained in:
Emiliano Vavassori 2020-11-23 01:13:32 +01:00
parent 71f4b86bde
commit ec5ae57cc6
20 changed files with 1509 additions and 110 deletions

2
content/js/jquery-3.5.1.min.js vendored Normal file

File diff suppressed because one or more lines are too long

40
content/js/onload.js Normal file
View File

@ -0,0 +1,40 @@
var globalResizerTimer = null;
var sedicinoni = 1.777784514;
function resizeLive() {
// Let's calculate the right needed height for the video based on the
// browser settings.
var livewidth = $(window).innerWidth() - 10;
var liveheight = $(window).innerHeight() - 136 - 10;
// Calculate the videowidth based on proportions
var videowidth = Math.ceil(livewidth * 0.75);
var videoheight = Math.ceil(videowidth / sedicinoni);
var chatwidth = livewidth - videowidth;
// Case 1: the height calculated with the aspect ratio is bigger than the
// available space. Let's reverse the calculation and understand which video
// size we need
if (videoheight > liveheight) {
var videowidth = Math.round(liveheight * sedicinoni);
var chatwidth = livewidth - videowidth;
$("#live").height(liveheight);
$("#embedded-video").width(videowidth).height(liveheight);
$("#embedded-chat").width(chatwidth);
} else {
// In any other case, I will apply all the dimensions
$("#live").height(liveheight);
$("#embedded-video").width(videowidth);
$("#embedded-video iframe").attr("width", videowidth).attr("height", liveheight);
$("#embedded-chat").width(chatwidth);
}
}
$(document).ready(resizeLive());
$(window).resize(function(){
if (globalResizerTimer != null)
window.clearTimeout(globalResizeTimer);
globalResizeTimer = window.setTimeout(function(){
resizeLive();
}, 200);
});

View File

@ -2,7 +2,11 @@ title: Live - Conferenza Italiana LibreItalia
slug: live
template: large
# Live - Settima Conferenza Italiana LibreItalia 2020 #
<iframe id="embedded-chat" src="https://chat.linux.it/channel/libreitaliaconf?layout=embedded" width="100%" height="90%" style="min-height:400px"></iframe>
<iframe src="" style="position:absolute;top:0;left:0;width:99%;height:99%;" frameborder="0" allow="autoplay; fullscreen;" allowfullscreen mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>
<div id="live">
<div id="embedded-video">
<iframe src="https://garr.tv/s/5fb82e7a175ddc33aa1e62d1?t=0" scrolling="no" marginwidth="0" allow="autoplay; fullscreen;" allowfullscreen mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>
</div>
<div id="embedded-chat">
<iframe src="https://chat.linux.it/channel/libreitaliaconf?layout=embedded"></iframe>
</div>
</div>

97
output/2020/index.html Normal file
View File

@ -0,0 +1,97 @@
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Conferenze - LibreItalia | Settima Conferenza Italiana - LibreItalia - 2020</title>
<link rel="shortcut icon" type="image/png" href="/favicon.png">
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
<link href="/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Conferenze - LibreItalia Full Atom Feed" />
<link rel="stylesheet" href="/theme/css/main.css" type="text/css" />
<link rel="stylesheet" href="/theme/css/pygments.css" type="text/css" />
<meta name="generator" content="Pelican" />
<meta name="description" content="" />
<meta name="author" content="LibreItalia" />
<script src="https://kit.fontawesome.com/0a2f7dbe4a.js" crossorigin="anonymous"></script>
</head>
<body>
<header>
<nav>
<ul>
<li><a href="/2020/">2020</a></li>
</ul>
</nav>
<div class="header_box">
<h1><a href="/">Conferenze - LibreItalia</a></h1>
</div>
</header>
<div id="wrapper">
<div id="content">
<div class="page">
<h1>Settima Conferenza Italiana - LibreItalia - 2020</h1>
<h1>La LibreItaliaConf in breve</h1>
<div class="row" style="text-align: center;">
<div style="padding: 5px 0px"><i style="font-size: 24pt;" class="far fa-clock"></i><br/>
Sabato 19 dicembre 2020<br/>dalle ore 9.30 alle ore 18.00</div>
<div style="padding: 5px 0px"><i style="font-size: 24pt;" class="fas fa-map-marked-alt"></i><br/>
Online</div>
<div style="padding: 5px 0px"><i style="font-size: 24pt;" class="fas fa-users"></i><br/>
&Egrave; aperta al pubblico</div>
</div>
<h1>Programma ufficiale</h1>
<p><strong>NOTA BENE</strong>: il programma definitivo della giornata non è ancora stato
definito. Questa pagina sarà aggiornata quando il programma definitivo sarà
disponibile.</p>
<p>Per il momento, ecco il programma di massima:</p>
<table>
<thead>
<tr>
<th align="center"></th>
<th align="left"></th>
</tr>
</thead>
<tbody>
<tr>
<td align="center"></td>
<td align="left"><strong>Mattina</strong></td>
</tr>
<tr>
<td align="center">09:30 - 10:00</td>
<td align="left">Introduzione, accoglienza, <em>caffè digitale</em></td>
</tr>
<tr>
<td align="center">10:00 - 10:30</td>
<td align="left">Saluti, rendicontazione, prospettive - LibreItalia</td>
</tr>
<tr>
<td align="center">10:30 - 13:00</td>
<td align="left">Interventi</td>
</tr>
<tr>
<td align="center"></td>
<td align="left"><strong>Pomeriggio</strong></td>
</tr>
<tr>
<td align="center">14:00 - 16:30</td>
<td align="left">Tavola rotonda - Prima Parte</td>
</tr>
<tr>
<td align="center">16:30 - 17:00</td>
<td align="left"><em>Tè digitale</em></td>
</tr>
<tr>
<td align="center">17:00 - 18:00</td>
<td align="left">Tavola rotonda - Seconda Parte</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="clear"></div>
</div>
</body>
</html>

38
output/archives.html Normal file
View File

@ -0,0 +1,38 @@
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Conferenze - LibreItalia | Archives</title>
<link rel="shortcut icon" type="image/png" href="/favicon.png">
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
<link href="/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Conferenze - LibreItalia Full Atom Feed" />
<link rel="stylesheet" href="/theme/css/main.css" type="text/css" />
<link rel="stylesheet" href="/theme/css/pygments.css" type="text/css" />
<meta name="generator" content="Pelican" />
<meta name="description" content="" />
<meta name="author" content="LibreItalia" />
<script src="https://kit.fontawesome.com/0a2f7dbe4a.js" crossorigin="anonymous"></script>
</head>
<body>
<header>
<nav>
<ul>
<li><a href="/2020/">2020</a></li>
</ul>
</nav>
<div class="header_box">
<h1><a href="/">Conferenze - LibreItalia</a></h1>
</div>
</header>
<div id="wrapper">
<div id="content">
<h1>Archives</h1>
</div>
<div class="clear"></div>
</div>
</body>
</html>

37
output/authors.html Normal file
View File

@ -0,0 +1,37 @@
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Conferenze - LibreItalia - Authors</title>
<link rel="shortcut icon" type="image/png" href="/favicon.png">
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
<link href="/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Conferenze - LibreItalia Full Atom Feed" />
<link rel="stylesheet" href="/theme/css/main.css" type="text/css" />
<link rel="stylesheet" href="/theme/css/pygments.css" type="text/css" />
<meta name="generator" content="Pelican" />
<meta name="description" content="" />
<meta name="author" content="LibreItalia" />
<script src="https://kit.fontawesome.com/0a2f7dbe4a.js" crossorigin="anonymous"></script>
</head>
<body>
<header>
<nav>
<ul>
<li><a href="/2020/">2020</a></li>
</ul>
</nav>
<div class="header_box">
<h1><a href="/">Conferenze - LibreItalia</a></h1>
</div>
</header>
<div id="wrapper">
<div id="content"> <h1>Authors on Conferenze - LibreItalia</h1>
<ul>
</ul>
</div>
<div class="clear"></div>
</div>
</body>
</html>

37
output/categories.html Normal file
View File

@ -0,0 +1,37 @@
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Conferenze - LibreItalia - Categories</title>
<link rel="shortcut icon" type="image/png" href="/favicon.png">
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
<link href="/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Conferenze - LibreItalia Full Atom Feed" />
<link rel="stylesheet" href="/theme/css/main.css" type="text/css" />
<link rel="stylesheet" href="/theme/css/pygments.css" type="text/css" />
<meta name="generator" content="Pelican" />
<meta name="description" content="" />
<meta name="author" content="LibreItalia" />
<script src="https://kit.fontawesome.com/0a2f7dbe4a.js" crossorigin="anonymous"></script>
</head>
<body>
<header>
<nav>
<ul>
<li><a href="/2020/">2020</a></li>
</ul>
</nav>
<div class="header_box">
<h1><a href="/">Conferenze - LibreItalia</a></h1>
</div>
</header>
<div id="wrapper">
<div id="content"> <h1>Categories on Conferenze - LibreItalia</h1>
<ul>
</ul>
</div>
<div class="clear"></div>
</div>
</body>
</html>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Conferenze - LibreItalia</title><link href="/" rel="alternate"></link><link href="/feeds/all.atom.xml" rel="self"></link><id>/</id><updated>2020-11-23T01:12:58Z</updated></feed>

3
output/index.html Normal file
View File

@ -0,0 +1,3 @@
<!DOCTYPE html><html><head><meta charset="utf-8" />
<meta http-equiv="refresh" content="0;url=/2020/" />
</head></html>

2
output/js/jquery-3.5.1.min.js vendored Normal file

File diff suppressed because one or more lines are too long

40
output/js/onload.js Normal file
View File

@ -0,0 +1,40 @@
var globalResizerTimer = null;
var sedicinoni = 1.777784514;
function resizeLive() {
// Let's calculate the right needed height for the video based on the
// browser settings.
var livewidth = $(window).innerWidth() - 10;
var liveheight = $(window).innerHeight() - 136 - 10;
// Calculate the videowidth based on proportions
var videowidth = Math.ceil(livewidth * 0.75);
var videoheight = Math.ceil(videowidth / sedicinoni);
var chatwidth = livewidth - videowidth;
// Case 1: the height calculated with the aspect ratio is bigger than the
// available space. Let's reverse the calculation and understand which video
// size we need
if (videoheight > liveheight) {
var videowidth = Math.round(liveheight * sedicinoni);
var chatwidth = livewidth - videowidth;
$("#live").height(liveheight);
$("#embedded-video").width(videowidth).height(liveheight);
$("#embedded-chat").width(chatwidth);
} else {
// In any other case, I will apply all the dimensions
$("#live").height(liveheight);
$("#embedded-video").width(videowidth);
$("#embedded-video iframe").attr("width", videowidth).attr("height", liveheight);
$("#embedded-chat").width(chatwidth);
}
}
$(document).ready(resizeLive());
$(window).resize(function(){
if (globalResizerTimer != null)
window.clearTimeout(globalResizeTimer);
globalResizeTimer = window.setTimeout(function(){
resizeLive();
}, 200);
});

48
output/live/index.html Normal file
View File

@ -0,0 +1,48 @@
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Conferenze - LibreItalia | Live - Conferenza Italiana LibreItalia</title>
<link rel="shortcut icon" type="image/png" href="/favicon.png">
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
<link href="/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Conferenze - LibreItalia Full Atom Feed" />
<link rel="stylesheet" href="/theme/css/large.css" type="text/css" />
<link rel="stylesheet" href="/theme/css/pygments.css" type="text/css" />
<meta name="generator" content="Pelican" />
<meta name="description" content="" />
<meta name="author" content="LibreItalia" />
<script src="https://kit.fontawesome.com/0a2f7dbe4a.js" crossorigin="anonymous"></script>
<script src="/js/jquery-3.5.1.min.js"></script>
</head>
<body>
<header>
<nav>
<ul>
<li><a href="/2020/">2020</a></li>
</ul>
</nav>
<div class="header_box">
<h1><a href="/">Conferenze - LibreItalia</a></h1>
</div>
</header>
<div id="wrapper">
<div id="content">
<div class="page">
<h1>Live - Conferenza Italiana LibreItalia</h1>
<div id="live">
<div id="embedded-video">
<iframe src="https://garr.tv/s/5fb82e7a175ddc33aa1e62d1?t=0" scrolling="no" marginwidth="0" allow="autoplay; fullscreen;" allowfullscreen mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>
</div>
<div id="embedded-chat">
<iframe src="https://chat.linux.it/channel/libreitaliaconf?layout=embedded"></iframe>
</div>
</div>
</div>
</div>
<div class="clear"></div>
</div>
<script src="/js/onload.js"></script>
</body>
</html>

36
output/tags.html Normal file
View File

@ -0,0 +1,36 @@
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Conferenze - LibreItalia</title>
<link rel="shortcut icon" type="image/png" href="/favicon.png">
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
<link href="/feeds/all.atom.xml" type="application/atom+xml" rel="alternate" title="Conferenze - LibreItalia Full Atom Feed" />
<link rel="stylesheet" href="/theme/css/main.css" type="text/css" />
<link rel="stylesheet" href="/theme/css/pygments.css" type="text/css" />
<meta name="generator" content="Pelican" />
<meta name="description" content="" />
<meta name="author" content="LibreItalia" />
<script src="https://kit.fontawesome.com/0a2f7dbe4a.js" crossorigin="anonymous"></script>
</head>
<body>
<header>
<nav>
<ul>
<li><a href="/2020/">2020</a></li>
</ul>
</nav>
<div class="header_box">
<h1><a href="/">Conferenze - LibreItalia</a></h1>
</div>
</header>
<div id="wrapper">
<div id="content"><ul>
</ul>
</div>
<div class="clear"></div>
</div>
</body>
</html>

457
output/theme/css/large.css Normal file
View File

@ -0,0 +1,457 @@
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
/* Mockingbird Theme by Nevan Scott nevanscott.com */
/* Modified by Jody Frankowski */
/* Modified by ix5 */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
em {
font-style: italic;
}
strong {
font-weight: bold;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
html {
height: 100%;
}
body {
line-height: 1;
height: 100%;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
body {
font-family: sans-serif;
font-size: 16px;
line-height: 1.5em;
height: 100%;
}
header, #wrapper {
padding: 0 0px;
margin: auto;
}
a {
text-decoration: none;
color: #3a7c78;
}
ul {
list-style: outside disc;
}
ol {
list-style: outside decimal;
}
h1, h2, h3, h4, h5, h6 {
font-family: sans-serif;
font-weight: bold;
}
h1, h2, h3 {
font-size: 1.5em;
line-height: 1em;
margin: 1em 0;
}
img, p, .post > .highlight, .highlighttable, h4, h5, h6 {
margin-top: 1.2em;
}
img + em {
font-size: .8em;
}
blockquote {
margin: 1.5em 1.5em 1.5em .75em;
padding-left: .75em;
border-left: 1px solid #EEE;
}
table {
width: 100%;
margin: 1em 0;
}
thead {
border-bottom: 1px solid black;
}
.date {
color: #CCC;
float: left;
clear: both;
width: 130px;
font-size: 1.5em;
line-height: 1em;
margin: 0 20px 1em 0;
}
.info {
margin-top: 1.3em;
font-family: sans-serif;
text-align: right;
color: #BBB;
}
.info a {
color: inherit;
}
.info a.tags {
background: #CCC;
color: #FFF;
display: inline-block;
padding: 0 .3em;
border: 1px transparent solid;
border-radius: 5px;
margin: 0 0 0.3em 0;
}
.info a.tags:hover {
background: inherit;
color: inherit;
}
.info a.tags.selected {
border: 1px #999 solid;
}
.post {
margin: 0 0 1em 150px;
}
.post.archives {
margin-bottom: 1.5em;
margin-left: 160px;
}
.post p {
text-align: justify;
}
.page {
margin: 0 10px;
height: 100%;
}
.highlight {
border-radius: 3px;
}
.code > .highlight {
border-radius: 0px 3px 3px 0px;
}
.linenos {
border-radius: 3px 0px 0px 3px;
background-color: #073642;
border-right: 1px solid #00232C;
color: #586E75;
text-shadow: 0px -1px #021014;
}
td.code {
width: 100%;
max-width: 100px;
}
.linenos a {
color: #586E75;
}
img {
box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.15);
border-radius: 0.3em;
max-width: 100%;
display: block;
margin-left: auto;
margin-right: auto;
}
/*sub and sup stolen from Twitter bootstrap.*/
sub, sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
.post pre, .page pre {
padding: .8em;
font-size: 12px;
font-family: Monospace;
line-height: 1.1em;
overflow: auto;
}
form.inline_edit {
clear: both;
margin: 1em 0;
background-color: #DDD;
color: #000;
padding: 20px;
border-radius: 5px;
}
.inline_edit .sub {
color: #888;
white-space: nowrap;
}
.inline_edit label {
float: left;
clear: both;
width: 140px;
margin-right: 20px;
}
.inline_edit .buttons {
display: block;
text-align: right;
}
nav ul {
float: right;
list-style: none;
margin: 0 0 0 3em;
padding: 0;
}
nav li {
float: left;
}
nav a {
display: block;
padding: 1em 10px 10px 10px;
}
nav a:hover {
background-color: #3a7c78;
color: #FFF;
}
nav li.selected a {
background-color: #15A9DB;
color: #FFF;
}
header .header_box {
padding-top: 1em;
}
header h1 {
font-size: 1.5em;
line-height: 1em;
margin: 0;
}
header h2 {
font-size: 1em;
margin: .3em 0;
color: #DDD;
}
#content {
margin-top: 3em;
}
#live {
display: flex;
flex-flow: row nowrap;
justify-content: space-between;
align-items: stretch;
background-color: teal;
height: 75vh;
}
#embedded-video {
display: flex;
flex: 4;
}
#embedded-chat {
display: flex;
flex: 1;
}
#live iframe {
flex: 1;
}
.pages {
font-family: sans-serif;
line-height: 2.5em;
margin: 1em 0 3em;
background-color: #F9F9F9;
border-radius: 5px;
}
.pages a.next_page {
float: right;
width: 140px;
text-align: center;
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
background-color: #EEE;
}
.pages a.prev_page {
float: left;
width: 140px;
text-align: center;
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
background-color: #EEE;
}
.pages a {
color: inherit;
border: none;
}
.pages a:hover {
background-color: #DDD;
}
.pages span {
display: block;
margin: 0 160px;
text-align: center;
}
code {
background-color: #F9F2F4;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
box-sizing: border-box;
color: #C7254E;
font-family: Monaco,Menlo,Consolas,"Courier New",monospace;
font-size: 12.6px;
line-height: 18px;
padding-bottom: 2px;
padding-left: 4px;
padding-right: 4px;
padding-top: 2px;
white-space: nowrap;
}
footer {
font-family: sans-serif;
line-height: 2.5em;
text-align: center;
color: #BBB;
margin: 3em 0;
border: 1px solid #EEE;
border-radius: 5px;
}
footer p { margin: 0; }
.right { float: right; }
.clear { clear: both; }
@media screen and (max-width: 1024px) {
#wrapper {
margin-left: 2.6em;
padding:1em;
}
.live {
display: none;
}
#embedded-video {
width: 720px;
height: 405px;
}
#embedded-chat {
width: 100%;
height: 400px;
}
}
@media screen and (max-width: 800px), print {
#wrapper {
margin: 0;
padding: 1em;
}
.date {
width: 100%;
margin: 0 0 .5em 0;
}
.post {
margin: 0 0 1em 0;
}
.post pre,
.post code {
white-space: pre-wrap;
}
.archives {
margin: 0 0 1.5em 0 !important;
}
nav ul {
margin: 0 0 1em 0;
}
}
@media print {
* {
background: #fff;
}
#wrapper, #content {
margin: 0;
padding: 0;
}
header, footer, nav {
display: none;
}
img {
break-inside: avoid;
}
p, table, pre {
widows: 3;
orphans: 3;
}
h1, h2, h3, h4, h5, h6 {
break-after: avoid;
}
h1, h2 {
font-size: 14pt;
}
h3, h4, h4.date {
font-size: 12pt;
}
.post p, .post ul li, .post ol li, .post table {
font-size: 11pt;
}
}
@page {
margin: 1.5cm;
}

415
output/theme/css/main.css Normal file
View File

@ -0,0 +1,415 @@
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
/* Mockingbird Theme by Nevan Scott nevanscott.com */
/* Modified by Jody Frankowski */
/* Modified by ix5 */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
em {
font-style: italic;
}
strong {
font-weight: bold;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
body {
font-family: sans-serif;
font-size: 16px;
line-height: 1.5em;
}
header, #wrapper {
padding: 0 0px;
max-width: 1080px;
margin: auto;
}
a {
text-decoration: none;
color: #3a7c78;
}
ul {
list-style: outside disc;
}
ol {
list-style: outside decimal;
}
h1, h2, h3, h4, h5, h6 {
font-family: sans-serif;
font-weight: bold;
}
h1, h2, h3 {
font-size: 1.5em;
line-height: 1em;
margin: 1em 0;
}
img, p, .post > .highlight, .highlighttable, h4, h5, h6 {
margin-top: 1.2em;
}
img + em {
font-size: .8em;
}
blockquote {
margin: 1.5em 1.5em 1.5em .75em;
padding-left: .75em;
border-left: 1px solid #EEE;
}
table {
width: 100%;
margin: 1em 0;
}
thead {
border-bottom: 1px solid black;
}
.date {
color: #CCC;
float: left;
clear: both;
width: 130px;
font-size: 1.5em;
line-height: 1em;
margin: 0 20px 1em 0;
}
.info {
margin-top: 1.3em;
font-family: sans-serif;
text-align: right;
color: #BBB;
}
.info a {
color: inherit;
}
.info a.tags {
background: #CCC;
color: #FFF;
display: inline-block;
padding: 0 .3em;
border: 1px transparent solid;
border-radius: 5px;
margin: 0 0 0.3em 0;
}
.info a.tags:hover {
background: inherit;
color: inherit;
}
.info a.tags.selected {
border: 1px #999 solid;
}
.post {
margin: 0 0 1em 150px;
}
.post.archives {
margin-bottom: 1.5em;
margin-left: 160px;
}
.post p {
text-align: justify;
}
.page {
margin: 0 90px;
}
.highlight {
border-radius: 3px;
}
.code > .highlight {
border-radius: 0px 3px 3px 0px;
}
.linenos {
border-radius: 3px 0px 0px 3px;
background-color: #073642;
border-right: 1px solid #00232C;
color: #586E75;
text-shadow: 0px -1px #021014;
}
td.code {
width: 100%;
max-width: 100px;
}
.linenos a {
color: #586E75;
}
img {
box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.15);
border-radius: 0.3em;
max-width: 100%;
display: block;
margin-left: auto;
margin-right: auto;
}
/*sub and sup stolen from Twitter bootstrap.*/
sub, sup {
position: relative;
font-size: 75%;
line-height: 0;
vertical-align: baseline;
}
sup {
top: -0.5em;
}
sub {
bottom: -0.25em;
}
.post pre, .page pre {
padding: .8em;
font-size: 12px;
font-family: Monospace;
line-height: 1.1em;
overflow: auto;
}
form.inline_edit {
clear: both;
margin: 1em 0;
background-color: #DDD;
color: #000;
padding: 20px;
border-radius: 5px;
}
.inline_edit .sub {
color: #888;
white-space: nowrap;
}
.inline_edit label {
float: left;
clear: both;
width: 140px;
margin-right: 20px;
}
.inline_edit .buttons {
display: block;
text-align: right;
}
nav ul {
float: right;
list-style: none;
margin: 0 0 0 3em;
padding: 0;
}
nav li {
float: left;
}
nav a {
display: block;
padding: 1em 10px 10px 10px;
}
nav a:hover {
background-color: #3a7c78;
color: #FFF;
}
nav li.selected a {
background-color: #15A9DB;
color: #FFF;
}
header .header_box {
padding-top: 1em;
}
header h1 {
font-size: 1.5em;
line-height: 1em;
margin: 0;
}
header h2 {
font-size: 1em;
margin: .3em 0;
color: #DDD;
}
#content {
margin-top: 3em;
}
.pages {
font-family: sans-serif;
line-height: 2.5em;
margin: 1em 0 3em;
background-color: #F9F9F9;
border-radius: 5px;
}
.pages a.next_page {
float: right;
width: 140px;
text-align: center;
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
background-color: #EEE;
}
.pages a.prev_page {
float: left;
width: 140px;
text-align: center;
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
background-color: #EEE;
}
.pages a {
color: inherit;
border: none;
}
.pages a:hover {
background-color: #DDD;
}
.pages span {
display: block;
margin: 0 160px;
text-align: center;
}
code {
background-color: #F9F2F4;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
box-sizing: border-box;
color: #C7254E;
font-family: Monaco,Menlo,Consolas,"Courier New",monospace;
font-size: 12.6px;
line-height: 18px;
padding-bottom: 2px;
padding-left: 4px;
padding-right: 4px;
padding-top: 2px;
white-space: nowrap;
}
footer {
font-family: sans-serif;
line-height: 2.5em;
text-align: center;
color: #BBB;
margin: 3em 0;
border: 1px solid #EEE;
border-radius: 5px;
}
footer p { margin: 0; }
.right { float: right; }
.clear { clear: both; }
@media screen and (max-width: 1024px) {
#wrapper {
margin-left: 2.6em;
padding:1em;
}
}
@media screen and (max-width: 800px), print {
#wrapper {
margin: 0;
padding: 1em;
}
.date {
width: 100%;
margin: 0 0 .5em 0;
}
.post {
margin: 0 0 1em 0;
}
.post pre,
.post code {
white-space: pre-wrap;
}
.archives {
margin: 0 0 1.5em 0 !important;
}
nav ul {
margin: 0 0 1em 0;
}
}
@media print {
* {
background: #fff;
}
#wrapper, #content {
margin: 0;
padding: 0;
}
header, footer, nav {
display: none;
}
img {
break-inside: avoid;
}
p, table, pre {
widows: 3;
orphans: 3;
}
h1, h2, h3, h4, h5, h6 {
break-after: avoid;
}
h1, h2 {
font-size: 14pt;
}
h3, h4, h4.date {
font-size: 12pt;
}
.post p, .post ul li, .post ol li, .post table {
font-size: 11pt;
}
}
@page {
margin: 1.5cm;
}

View File

@ -0,0 +1,87 @@
/* Solarized Dark
For use with Jekyll and Pygments
http://ethanschoonover.com/solarized
SOLARIZED HEX ROLE
--------- -------- ------------------------------------------
base03 #002b36 background
base01 #586e75 comments / secondary content
base1 #93a1a1 body text / default code / primary content
orange #cb4b16 constants
red #dc322f regex, special keywords
blue #268bd2 reserved keywords
cyan #2aa198 strings, numbers
green #859900 operators, other keywords
*/
.highlight { background-color: #002b36; color: #93a1a1 }
.highlight .c { color: #586e75 } /* Comment */
.highlight .err { color: #93a1a1 } /* Error */
.highlight .g { color: #93a1a1 } /* Generic */
.highlight .k { color: #859900 } /* Keyword */
.highlight .l { color: #93a1a1 } /* Literal */
.highlight .n { color: #93a1a1 } /* Name */
.highlight .o { color: #859900 } /* Operator */
.highlight .x { color: #cb4b16 } /* Other */
.highlight .p { color: #93a1a1 } /* Punctuation */
.highlight .cm { color: #586e75 } /* Comment.Multiline */
.highlight .cp { color: #859900 } /* Comment.Preproc */
.highlight .c1 { color: #586e75 } /* Comment.Single */
.highlight .cs { color: #859900 } /* Comment.Special */
.highlight .gd { color: #2aa198 } /* Generic.Deleted */
.highlight .ge { color: #93a1a1; font-style: italic } /* Generic.Emph */
.highlight .gr { color: #dc322f } /* Generic.Error */
.highlight .gh { color: #cb4b16 } /* Generic.Heading */
.highlight .gi { color: #859900 } /* Generic.Inserted */
.highlight .go { color: #93a1a1 } /* Generic.Output */
.highlight .gp { color: #93a1a1 } /* Generic.Prompt */
.highlight .gs { color: #93a1a1; font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #cb4b16 } /* Generic.Subheading */
.highlight .gt { color: #93a1a1 } /* Generic.Traceback */
.highlight .kc { color: #cb4b16 } /* Keyword.Constant */
.highlight .kd { color: #268bd2 } /* Keyword.Declaration */
.highlight .kn { color: #859900 } /* Keyword.Namespace */
.highlight .kp { color: #859900 } /* Keyword.Pseudo */
.highlight .kr { color: #268bd2 } /* Keyword.Reserved */
.highlight .kt { color: #dc322f } /* Keyword.Type */
.highlight .ld { color: #93a1a1 } /* Literal.Date */
.highlight .m { color: #2aa198 } /* Literal.Number */
.highlight .s { color: #2aa198 } /* Literal.String */
.highlight .na { color: #93a1a1 } /* Name.Attribute */
.highlight .nb { color: #B58900 } /* Name.Builtin */
.highlight .nc { color: #268bd2 } /* Name.Class */
.highlight .no { color: #cb4b16 } /* Name.Constant */
.highlight .nd { color: #268bd2 } /* Name.Decorator */
.highlight .ni { color: #cb4b16 } /* Name.Entity */
.highlight .ne { color: #cb4b16 } /* Name.Exception */
.highlight .nf { color: #268bd2 } /* Name.Function */
.highlight .nl { color: #93a1a1 } /* Name.Label */
.highlight .nn { color: #93a1a1 } /* Name.Namespace */
.highlight .nx { color: #93a1a1 } /* Name.Other */
.highlight .py { color: #93a1a1 } /* Name.Property */
.highlight .nt { color: #268bd2 } /* Name.Tag */
.highlight .nv { color: #268bd2 } /* Name.Variable */
.highlight .ow { color: #859900 } /* Operator.Word */
.highlight .w { color: #93a1a1 } /* Text.Whitespace */
.highlight .mf { color: #2aa198 } /* Literal.Number.Float */
.highlight .mh { color: #2aa198 } /* Literal.Number.Hex */
.highlight .mi { color: #2aa198 } /* Literal.Number.Integer */
.highlight .mo { color: #2aa198 } /* Literal.Number.Oct */
.highlight .sb { color: #586e75 } /* Literal.String.Backtick */
.highlight .sc { color: #2aa198 } /* Literal.String.Char */
.highlight .sd { color: #93a1a1 } /* Literal.String.Doc */
.highlight .s2 { color: #2aa198 } /* Literal.String.Double */
.highlight .se { color: #cb4b16 } /* Literal.String.Escape */
.highlight .sh { color: #93a1a1 } /* Literal.String.Heredoc */
.highlight .si { color: #2aa198 } /* Literal.String.Interpol */
.highlight .sx { color: #2aa198 } /* Literal.String.Other */
.highlight .sr { color: #dc322f } /* Literal.String.Regex */
.highlight .s1 { color: #2aa198 } /* Literal.String.Single */
.highlight .ss { color: #2aa198 } /* Literal.String.Symbol */
.highlight .bp { color: #268bd2 } /* Name.Builtin.Pseudo */
.highlight .vc { color: #268bd2 } /* Name.Variable.Class */
.highlight .vg { color: #268bd2 } /* Name.Variable.Global */
.highlight .vi { color: #268bd2 } /* Name.Variable.Instance */
.highlight .il { color: #2aa198 } /* Literal.Number.Integer.Long */

View File

@ -15,6 +15,8 @@ DEFAULT_LANG = 'it'
PLUGIN_PATHS = [ "plugins", ]
PLUGINS = [ "pelican_alias", ]
STATIC_PATHS = [ 'js', 'images', 'css' ]
DEFAULT_PAGINATION = False
PAGE_URL = '{slug}/'
@ -64,7 +66,7 @@ AUTHOR_FEED_RSS = None
# ('Another social link', '#'),)
# Uncomment following line if you want document-relative URLs when developing
RELATIVE_URLS = True
#RELATIVE_URLS = True
# Deploy
SSH_HOST = "ciccio"

View File

@ -37,8 +37,12 @@ article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
html {
height: 100%;
}
body {
line-height: 1;
height: 100%;
}
ol, ul {
list-style: none;
@ -60,6 +64,7 @@ body {
font-family: sans-serif;
font-size: 16px;
line-height: 1.5em;
height: 100%;
}
header, #wrapper {
@ -159,7 +164,8 @@ thead {
}
.page {
margin: 0 90px;
margin: 0 10px;
height: 100%;
}
.highlight {
@ -279,8 +285,27 @@ header h2 {
margin-top: 3em;
}
#live {
display: flex;
flex-flow: row nowrap;
justify-content: space-between;
align-items: stretch;
background-color: teal;
height: 75vh;
}
#embedded-video {
display: flex;
flex: 4;
}
#embedded-chat {
width: 300px;
display: flex;
flex: 1;
}
#live iframe {
flex: 1;
}
.pages {
@ -357,6 +382,20 @@ footer p { margin: 0; }
margin-left: 2.6em;
padding:1em;
}
.live {
display: none;
}
#embedded-video {
width: 720px;
height: 405px;
}
#embedded-chat {
width: 100%;
height: 400px;
}
}
@media screen and (max-width: 800px), print {

View File

@ -1,105 +1,11 @@
{% macro ephemeral_nav_link(what, where, selected=False) -%}
<li class="ephemeral{% if selected %} selected{% endif %}"><a href="{{ SITEURL }}/{{ where }}">{{what}}</a></li>
{%- endmacro -%}
{% extends "large_base.html" %}
<!DOCTYPE html>
<html lang="{{ DEFAULT_LANG }}">
<head>
{% block head %}
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>{% block title %}{{ SITENAME }}{% endblock title %}</title>
{# favicon #}
<link rel="shortcut icon" type="image/png" href="{{ SITEURL }}/favicon.png">
<link rel="shortcut icon" type="image/x-icon" href="{{ SITEURL }}/favicon.ico">
{% if FEED_ALL_ATOM %}
<link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_ATOM }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Full Atom Feed" />
{% endif %}
{% if FEED_ALL_RSS %}
<link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_RSS }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Full RSS Feed" />
{% endif %}
{% if FEED_ATOM %}
<link href="{{ FEED_DOMAIN }}/{{ FEED_ATOM }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Atom Feed" />
{% endif %}
{% if FEED_RSS %}
<link href="{{ FEED_DOMAIN }}/{{ FEED_RSS }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} RSS Feed" />
{% endif %}
{% if CATEGORY_FEED_ATOM and category %}
<link href="{{ FEED_DOMAIN }}/{{ CATEGORY_FEED_ATOM.format(slug=category.slug) }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Categories Atom Feed" />
{% endif %}
{% if CATEGORY_FEED_RSS and category %}
<link href="{{ FEED_DOMAIN }}/{{ CATEGORY_FEED_RSS.format(slug=category.slug) }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Categories RSS Feed" />
{% endif %}
{% if TAG_FEED_ATOM and tag %}
<link href="{{ FEED_DOMAIN }}/{{ TAG_FEED_ATOM.format(slug=tag.slug) }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Tags Atom Feed" />
{% endif %}
{% if TAG_FEED_RSS and tag %}
<link href="{{ FEED_DOMAIN }}/{{ TAG_FEED_RSS.format(slug=tag.slug) }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Tags RSS Feed" />
{% endif %}
<link rel="stylesheet" href="{{ SITEURL }}/theme/css/large.css" type="text/css" />
<link rel="stylesheet" href="{{ SITEURL }}/theme/css/pygments.css" type="text/css" />
<meta name="generator" content="Pelican" />
<meta name="description" content="{{ SITEDESCRIPTION }}" />
<meta name="author" content="{{ AUTHOR }}" />
{% endblock head %}
<script src="https://kit.fontawesome.com/0a2f7dbe4a.js" crossorigin="anonymous"></script>
</head>
<body>
{% if DISPLAY_HEADER or DISPLAY_HEADER is not defined %}
<header>
{% if DISPLAY_MENU or DISPLAY_MENU is not defined %}
<nav>
<ul>
{% block ephemeral_nav %}{% endblock %}
{% if DISPLAY_HOME or DISPLAY_HOME is not defined %}
<li{% if output_file == "index.html" %} class="selected"{% endif %}><a href="{{ SITEURL }}/">Home</a></li>
{% endif %}
{% if DISPLAY_PAGES_ON_MENU %}
{% for p in pages %}
<li{% if p == page %} class="selected"{% endif %}><a href="{{ SITEURL }}/{{ p.url }}">{{ p.title }}</a></li>
{% endfor %}
{% endif %}
{% for title, link in MENUITEMS %}
<li><a href="{{ link }}">{{ title }}</a></li>
{% endfor %}
{% for name, link, file in MENU_INTERNAL_PAGES %}
<li{% if output_file == file %} class="selected"{% endif %}><a href="{{ SITEURL }}/{{ link }}">{{ name }}</a></li>
{% endfor %}
</ul>
</nav>
{% endif %}
<div class="header_box">
<h1><a href="{{ SITEURL }}/">{{ SITENAME }}</a></h1>
{% if SITESUBTITLE %}
<h2>{{ SITESUBTITLE }}</h2>
{% endif %}
</div>
</header>
{% endif %}
<div id="wrapper">
<div id="content">
{%- block content -%}{%- endblock %}
{% block title %}{{ SITENAME }} | {{ page.title }}{% endblock %}
{% if DISPLAY_FOOTER or DISPLAY_FOOTER is not defined %}
<div class="clear"></div>
<footer>
<p>
<a href="https://github.com/jody-frankowski/blue-penguin">Blue Penguin</a> Theme
&middot;
Powered by <a href="http://getpelican.com">Pelican</a>
{% if FEED_ALL_ATOM %}
&middot;
<a href="{{ SITEURL }}/{{ FEED_ALL_ATOM }}" rel="alternate">Atom Feed</a>
{% endif %}
{% if FEED_ALL_RSS %}
&middot;
<a href="{{ SITEURL }}/{{ FEED_ALL_RSS }}" rel="alternate">Rss Feed</a>
{% endif %}
</footer>
{% endif %}
</div>
<div class="clear"></div>
</div>
{% include 'analytics.html' %}
</body>
</html>
{% block content %}
<div class="page">
<h1>{{ page.title }}</h1>
{{ page.content }}
</div>
{% endblock %}

View File

@ -0,0 +1,107 @@
{% macro ephemeral_nav_link(what, where, selected=False) -%}
<li class="ephemeral{% if selected %} selected{% endif %}"><a href="{{ SITEURL }}/{{ where }}">{{what}}</a></li>
{%- endmacro -%}
<!DOCTYPE html>
<html lang="{{ DEFAULT_LANG }}">
<head>
{% block head %}
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>{% block title %}{{ SITENAME }}{% endblock title %}</title>
{# favicon #}
<link rel="shortcut icon" type="image/png" href="{{ SITEURL }}/favicon.png">
<link rel="shortcut icon" type="image/x-icon" href="{{ SITEURL }}/favicon.ico">
{% if FEED_ALL_ATOM %}
<link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_ATOM }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Full Atom Feed" />
{% endif %}
{% if FEED_ALL_RSS %}
<link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_RSS }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Full RSS Feed" />
{% endif %}
{% if FEED_ATOM %}
<link href="{{ FEED_DOMAIN }}/{{ FEED_ATOM }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Atom Feed" />
{% endif %}
{% if FEED_RSS %}
<link href="{{ FEED_DOMAIN }}/{{ FEED_RSS }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} RSS Feed" />
{% endif %}
{% if CATEGORY_FEED_ATOM and category %}
<link href="{{ FEED_DOMAIN }}/{{ CATEGORY_FEED_ATOM.format(slug=category.slug) }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Categories Atom Feed" />
{% endif %}
{% if CATEGORY_FEED_RSS and category %}
<link href="{{ FEED_DOMAIN }}/{{ CATEGORY_FEED_RSS.format(slug=category.slug) }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Categories RSS Feed" />
{% endif %}
{% if TAG_FEED_ATOM and tag %}
<link href="{{ FEED_DOMAIN }}/{{ TAG_FEED_ATOM.format(slug=tag.slug) }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Tags Atom Feed" />
{% endif %}
{% if TAG_FEED_RSS and tag %}
<link href="{{ FEED_DOMAIN }}/{{ TAG_FEED_RSS.format(slug=tag.slug) }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Tags RSS Feed" />
{% endif %}
<link rel="stylesheet" href="{{ SITEURL }}/theme/css/large.css" type="text/css" />
<link rel="stylesheet" href="{{ SITEURL }}/theme/css/pygments.css" type="text/css" />
<meta name="generator" content="Pelican" />
<meta name="description" content="{{ SITEDESCRIPTION }}" />
<meta name="author" content="{{ AUTHOR }}" />
{% endblock head %}
<script src="https://kit.fontawesome.com/0a2f7dbe4a.js" crossorigin="anonymous"></script>
<script src="{{ SITEURL }}/js/jquery-3.5.1.min.js"></script>
</head>
<body>
{% if DISPLAY_HEADER or DISPLAY_HEADER is not defined %}
<header>
{% if DISPLAY_MENU or DISPLAY_MENU is not defined %}
<nav>
<ul>
{% block ephemeral_nav %}{% endblock %}
{% if DISPLAY_HOME or DISPLAY_HOME is not defined %}
<li{% if output_file == "index.html" %} class="selected"{% endif %}><a href="{{ SITEURL }}/">Home</a></li>
{% endif %}
{% if DISPLAY_PAGES_ON_MENU %}
{% for p in pages %}
<li{% if p == page %} class="selected"{% endif %}><a href="{{ SITEURL }}/{{ p.url }}">{{ p.title }}</a></li>
{% endfor %}
{% endif %}
{% for title, link in MENUITEMS %}
<li><a href="{{ link }}">{{ title }}</a></li>
{% endfor %}
{% for name, link, file in MENU_INTERNAL_PAGES %}
<li{% if output_file == file %} class="selected"{% endif %}><a href="{{ SITEURL }}/{{ link }}">{{ name }}</a></li>
{% endfor %}
</ul>
</nav>
{% endif %}
<div class="header_box">
<h1><a href="{{ SITEURL }}/">{{ SITENAME }}</a></h1>
{% if SITESUBTITLE %}
<h2>{{ SITESUBTITLE }}</h2>
{% endif %}
</div>
</header>
{% endif %}
<div id="wrapper">
<div id="content">
{%- block content -%}{%- endblock %}
{% if DISPLAY_FOOTER or DISPLAY_FOOTER is not defined %}
<div class="clear"></div>
<footer>
<p>
<a href="https://github.com/jody-frankowski/blue-penguin">Blue Penguin</a> Theme
&middot;
Powered by <a href="http://getpelican.com">Pelican</a>
{% if FEED_ALL_ATOM %}
&middot;
<a href="{{ SITEURL }}/{{ FEED_ALL_ATOM }}" rel="alternate">Atom Feed</a>
{% endif %}
{% if FEED_ALL_RSS %}
&middot;
<a href="{{ SITEURL }}/{{ FEED_ALL_RSS }}" rel="alternate">Rss Feed</a>
{% endif %}
</footer>
{% endif %}
</div>
<div class="clear"></div>
</div>
{% include 'analytics.html' %}
<script src="{{ SITEURL }}/js/onload.js"></script>
</body>
</html>