1
1

re-add theme

This commit is contained in:
maxime 2019-08-17 19:12:14 +02:00
parent 87e3aacec8
commit e291a7b68f
60 changed files with 1869 additions and 0 deletions

View File

@ -0,0 +1,42 @@
@font-face {
font-family: 'Source Code Pro';
font-style: normal;
font-weight: 400;
src: local('Source Code Pro'), local('SourceCodePro-Regular'), url(../fonts/Source-Code-Pro.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: normal;
font-weight: 300;
src: local('Source Sans Pro Light'), local('SourceSansPro-Light'), url(../fonts/Source-Sans-Pro-Light.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: normal;
font-weight: 400;
src: local('Source Sans Pro'), local('SourceSansPro-Regular'), url(../fonts/Source-Sans-Pro.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: normal;
font-weight: 600;
src: local('Source Sans Pro Semibold'), local('SourceSansPro-Semibold'), url(../fonts/Source-Sans-Pro-Light-Italic.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: italic;
font-weight: 300;
src: local('Source Sans Pro Light Italic'), local('SourceSansPro-LightIt'), url(../fonts/Source-Sans-Pro-Light-Italic.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: italic;
font-weight: 400;
src: local('Source Sans Pro Italic'), local('SourceSansPro-It'), url(../fonts/Source-Sans-Pro-Italic.woff) format('woff');
}
@font-face {
font-family: 'Source Sans Pro';
font-style: italic;
font-weight: 600;
src: local('Source Sans Pro Semibold Italic'), local('SourceSansPro-SemiboldIt'), url(../fonts/Source-Sans-Pro-Semibold-Italic.woff) format('woff');
}

337
theme/static/css/main.css Normal file
View File

@ -0,0 +1,337 @@
/*
Colors :
- #40403F
- #4D4D4C
- #7F7F7E
- #E5E5E3
- #F0F0F0
*/
/* Imports */
@import url("fonts.css");
@import url("tinytypo.css");
@import url("pygment.css");
/* Latout */
article,
figcaption,
figure,
footer,
header,
nav,
section,
time {
display: block;
}
html {
font-size: 100%;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
}
body {
font-family: 'Source Sans Pro', sans-serif;
font-weight: 300;
font-size: 0.95em;
line-height: 150%;
text-align: left;
padding: 0;
min-width: 740px;
background: linear-gradient(0deg, #FFFFFF, #FEFEFE) repeat scroll 0% 0% transparent;
}
header {
border-top: 4px solid #4271AE;
border-bottom: 1px solid #D6D6D6;
height: 50px;
line-height: 50px;
padding: 0 1em;
margin-bottom: 1.5em;
}
.wrapper {
display: table;
width: 100%;
}
.content {
display: table-cell;
padding: 0 20px 1em 20px;
}
.sidebar {
display: table-cell;
width: 25%;
padding: 0 20px 1em 3%;
}
footer {
border-top: 1px dotted #D6D6D6;
line-height: 30px;
padding: 0 1em;
font-size: 0.8em;
}
/* Header */
header a {
border-bottom: none;
}
header a.title {
font-size: 1.25em;
}
header .feeds {
float: right;
text-align: right;
width: 25%;
line-height: 40px;
}
header .feeds a {
display: block;
float: right;
padding-right: 5px;
width: 40px;
}
header .feeds a:hover,
header .feeds a:active {
border-bottom: none;
}
header .pages {
float: right;
padding-right: 20px;
}
header .pages a {
font-size: 1.1em;
}
/* Sidebar */
#sidebar-container-fixed.sticky {
padding-bottom: 100px;
position: fixed;
top: 85px;
transition: opacity 3s ease-in-out 0s;
opacity: 0.2;
}
#sidebar-container-fixed:hover {
opacity: 1;
transition: opacity 0s ease-in-out 0s;
}
.sidebar ol,
.sidebar ul {
margin-left: 0;
color: #4D4D4C;
}
/* Titles */
h1 a {
color: inherit;
border-bottom: none;
}
/* Texts */
p {
text-align: justify;
}
a {
text-decoration: none;
border-bottom: 1px dotted #4D4D4C;
color: #4D4D4C;
}
a:hover, a:active {
text-decoration: none;
border-bottom: 1px dotted #4271AE;
color: #4271AE;
}
.literal {
border: 1px solid #F0F0F0;
padding: 0px 5px;
}
pre {
font-family: 'Source Code Pro',monospace;
background: none repeat scroll 0 0 #F0F0F0;
border-radius: 2px;
font-size: 0.9em;
font-style: normal;
letter-spacing: 0.015em;
line-height: 130%;
padding: 0.7em;
white-space: pre-wrap;
word-wrap: break-word;
}
hr {
margin: 40px 5% 60px 5%;
color: #d6d6d6;
box-shadow: 0.1em 0.1em 0.1em #EFEFEF;
border-radius: 5px;
}
/* Article */
article.summary {
margin-bottom: 40px;
clear: both;
}
article.summary > div {
margin-left: 28%;
}
article.full .metadata,
article.summary .metadata {
padding: 1%;
font-style: italic;
text-align: right;
}
article.full .metadata {
width: 25%;
float: right;
margin: 0 0 2% 1%;
}
article.summary .metadata {
width: 23%;
float: left;
margin: 0 1% 2% 0 ;
}
article .section {
margin: 4em 0 0 0;
}
.metadata p,
.metadata address {
margin: 0;
text-align: right;
}
/* Listings */
ol.archive li {
margin: 8px 0;
}
ol.archive li time,
ol.archive li .tags
{
line-height: 140%;
font-size: 0.8em;
margin: 0;
}
/* Social */
.social {
list-style-type: none;
padding-left: 20px;
}
.social li {
clear: both;
}
.social a {}
.social i {
float: left;
margin-right: 3px;
padding-top: 4px;
}
.social a[href*='twitter.com'] + i:before {content: url('../images/icons/twitter-18px.png'); }
.social a[href*='linkedin.com'] + i:before {content: url('../images/icons/linkedin-18px.png'); }
.social a[href*='github.com'] + i:before {content: url('../images/icons/github-18px.png'); }
.social a[href*='google.com'] + i:before {content: url('../images/icons/google-18px.png'); }
.social a[href*='keybase.io'] + i:before {content: url('../images/icons/keybase-18px.png'); }
.social a[href*='delicious.com']:before {content: url('../images/icons/delicious-18px.png'); }
.social a[href*='digg.com']:before {content: url('../images/icons/digg-18px.png'); }
.social a[href*='facebook.com']:before {content: url('../images/icons/facebook-18px.png'); }
.social a[href*='stackoverflow.com']:before {content: url('../images/icons/stackoverflow-18px.png'); }
.social a[href*='rss.xml']:before {content: url('../images/icons/feed-18px.png'); }
.social a[href*='atom.xml']:before {content: url('../images/icons/feed-18px.png'); }
/* Tag cloud */
ul.tagcloud {
list-style: none;
padding: 0;
width: 50%;
margin: 0 auto;
line-height: 200%;
}
ul.tagcloud li {
display: inline-block;
}
li.tag-1 { font-size: 175%; margin: 0 1em; }
li.tag-2 { font-size: 150%; margin: 0 1em; }
li.tag-3 { font-size: 125%; margin: 0 1em; }
li.tag-4 { font-size: 110%; margin: 0 1em; }
/* Pagination */
.pagination {
width: 100px;
margin: 1em auto;
}
/* Light TinyTypo overrides */
/* box border color */
.box {
border-color:#D6D6D6; /* #4271AE */
}
/* .box which contains only a list */
.box.only-list ul,
.box.only-list ol
{
margin-top: 0;
}
/* Responsive */
@media (min-width: 1280px) {
body {
margin: 0 20%;
}
}
@media (max-width: 1280px) {
body {
margin: 0 12%;
}
}
@media (max-width: 979px) {
body {
margin: 0 4%;
}
}

View File

@ -0,0 +1,205 @@
.hll {
background-color:#FFFFCC;
}
.c {
color:#408090;
font-style:italic;
}
.err {
border:1px solid #FF0000;
}
.k {
color:#007020;
font-weight:bold;
}
.o {
color:#666666;
}
.cm {
color:#408090;
font-style:italic;
}
.cp {
color:#007020;
}
.c1 {
color:#408090;
font-style:italic;
}
.cs {
background-color:#FFF0F0;
color:#408090;
}
.gd {
color:#A00000;
}
.ge {
font-style:italic;
}
.gr {
color:#FF0000;
}
.gh {
color:#000080;
font-weight:bold;
}
.gi {
color:#00A000;
}
.go {
color:#303030;
}
.gp {
color:#C65D09;
font-weight:bold;
}
.gs {
font-weight:bold;
}
.gu {
color:#800080;
font-weight:bold;
}
.gt {
color:#0040D0;
}
.kc {
color:#007020;
font-weight:bold;
}
.kd {
color:#007020;
font-weight:bold;
}
.kn {
color:#007020;
font-weight:bold;
}
.kp {
color:#007020;
}
.kr {
color:#007020;
font-weight:bold;
}
.kt {
color:#902000;
}
.m {
color:#208050;
}
.s {
color:#4070A0;
}
.na {
color:#4070A0;
}
.nb {
color:#007020;
}
.nc {
color:#0E84B5;
font-weight:bold;
}
.no {
color:#60ADD5;
}
.nd {
color:#555555;
font-weight:bold;
}
.ni {
color:#D55537;
font-weight:bold;
}
.ne {
color:#007020;
}
.nf {
color:#06287E;
}
.nl {
color:#002070;
font-weight:bold;
}
.nn {
color:#0E84B5;
font-weight:bold;
}
.nt {
color:#062873;
font-weight:bold;
}
.nv {
color:#BB60D5;
}
.ow {
color:#007020;
font-weight:bold;
}
.w {
color:#BBBBBB;
}
.mf {
color:#208050;
}
.mh {
color:#208050;
}
.mi {
color:#208050;
}
.mo {
color:#208050;
}
.sb {
color:#4070A0;
}
.sc {
color:#4070A0;
}
.sd {
color:#4070A0;
font-style:italic;
}
.s2 {
color:#4070A0;
}
.se {
color:#4070A0;
font-weight:bold;
}
.sh {
color:#4070A0;
}
.si {
color:#70A0D0;
font-style:italic;
}
.sx {
color:#C65D09;
}
.sr {
color:#235388;
}
.s1 {
color:#4070A0;
}
.ss {
color:#517918;
}
.bp {
color:#007020;
}
.vc {
color:#BB60D5;
}
.vg {
color:#BB60D5;
}
.vi {
color:#BB60D5;
}
.il {
color:#208050;
}

View File

@ -0,0 +1,903 @@
/* --------------------------------------------------
Composition helpers
[fr] Aides à la composition
Tiny Typo v1.0 | MIT License
(c) 2010-2013 tinytypo.tetue.net
----------------------------------------------------- */
/* Box model
[fr] http://blog.goetter.fr/post/27612618411/box-sizing-et-pourquoi-pas
[en] http://www.paulirish.com/2012/box-sizing-border-box-ftw/ */
*,
*:before,
*:after {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
/* Blocks */
.block {
display: block;
margin-bottom: 1.5em;
}
.inline {
display: inline;
}
.inline-block {
display: inline-block;
}
/* Positioning */
.left {
float: left;
}
.right {
float: right;
}
.center {
margin-right: auto;
margin-left: auto;
}
/* Blocks spacer
[fr] Espaceur de blocs : http://romy.tetue.net/657 */
.clear {
clear: both;
}
br.clear {
clear: both;
margin: 0;
padding: 0;
border: 0;
height: 0;
line-height: 1px;
font-size: 1px;
}
hr.clear {
visibility: hidden;
}
/* clearfix : http://www.positioniseverything.net/easyclearing.html */
.clearfix:after {
content: "\0020";
display: block;
height: 0;
clear: both;
visibility: hidden;
overflow: hidden;
}
.clearfix {
display: inline-table;
}
/* Hides from IE-mac \*/
.clearfix {
height: 1%;
}
.clearfix {
display: block;
}
/* End hide from IE-mac */
/* Not visible */
.offscreen {
position: absolute;
left: -999em;
height: 1%;
}
.hidden {
visibility: hidden;
}
.none {
display: none;
}
/* debug */
.todo {
opacity: 0.5;
}
.todo:hover {
opacity: 1;
}
.blink {
text-decoration: blink;
}
/* --------------------------------------------------
Typographical base
Tiny Typo v1.0 | MIT License
(c) 2010-2013 tinytypo.tetue.net
----------------------------------------------------- */
html {
font-size: 100.01%;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
}
/* Cf.: http://www.pompage.net/pompe/definir-des-tailles-de-polices-en-CSS/
et http://forum.alsacreations.com/topic-4-54377-1.html
[en] http://stackoverflow.com/questions/2703056/body-font-size-100-01-vs-body-font-size-100 */
body {
font-size: 1em;
line-height: 1.5;
}
/* Titraille / Intertitres */
h1,
.h1,
h2,
.h2,
h3,
.h3,
h4,
.h4,
h5,
.h5,
h6,
.h6 {
display: block;
margin: 0;
padding: 0;
font-size: 100%;
font-weight: normal;
}
h1,
.h1 {
font-size: 2em;
line-height: 1.5;
margin-bottom: .75em;
}
h2,
.h2 {
font-size: 1.5em;
line-height: 1;
margin-bottom: 1em;
}
h3,
.h3 {
font-size: 1.25em;
line-height: 1.2;
margin-bottom: 1.2em;
}
h4,
.h4 {
font-size: 1.1em;
line-height: 1.364;
margin-bottom: 1.364em;
}
h5,
.h5 {
font-size: 1em;
font-weight: bold;
margin-bottom: 1.5em;
}
h6,
.h6 {
font-size: 1em;
font-weight: bold;
}
h1 small,
.h1 small,
h2 small,
.h2 small,
h3 small,
.h3 small,
h4 small,
.h4 small,
h5 small,
.h5 small,
h6 small,
.h6 small {
font-size: 60%;
line-height: 0;
}
hr {
-moz-box-sizing: content-box;
box-sizing: content-box;
height: 0;
margin: 1.5em 0;
border: solid;
border-width: 1px 0 0;
}
/* Typographical enhancements */
em,
i,
.i {
font-style: italic;
}
strong,
b,
.b {
font-weight: bold;
}
mark,
.mark {
background: #ff0;
color: #000;
}
.smaller {
font-size: 75%;
}
small,
.small {
font-size: 80%;
}
big,
.big {
font-size: 130%;
}
.bigger {
font-size: 175%;
}
.biggest {
font-size: 200%;
}
abbr[title],
acronym[title] {
border-bottom: .1em dotted;
cursor: help;
}
@media print {
abbr[title] {
border-bottom: 0;
}
abbr[title]:after {
content: " (" attr(title) ")";
}
}
dfn,
.dfn {
font-weight: bold;
font-style: italic;
}
s,
strike,
del,
.del {
opacity: .5;
text-decoration: line-through;
}
ins,
.ins {
background-color: rgba(255, 255, 204, 0.5);
text-decoration: none;
}
u,
.u {
text-decoration: underline;
}
sup,
.sup,
sub,
.sub {
font-size: 80%;
font-variant: normal;
line-height: 0;
}
sup,
.sup {
vertical-align: super;
}
.ie sup {
vertical-align: text-top;
}
sub,
.sub {
vertical-align: sub;
}
.ie sub {
vertical-align: text-bottom;
}
.lead {
font-size: 120%;
}
.caps {
font-variant: small-caps;
}
.quiet {
color: #555555;
}
/* Alignment */
.text-left {
text-align: left;
}
.text-right {
text-align: right;
}
.text-center {
text-align: center;
}
.text-justify {
text-align: justify;
text-justify: newspaper;
}
/* Lists */
ul {
list-style-type: disc;
}
ul ul {
list-style-type: circle;
}
ul ul ul {
list-style-type: square;
}
ol {
list-style-type: decimal;
}
ol ol {
list-style-type: lower-alpha;
}
ol ol ol {
list-style-type: lower-greek;
}
ul ul,
ol ol,
ul ol,
ol ul {
margin-top: 0;
margin-bottom: 0;
}
ol,
ul {
margin-left: 1.5em;
-webkit-margin-before: 0;
-webkit-margin-after: 0;
}
dt {
font-weight: bold;
}
dd {
margin-left: 1.5em;
}
.list-none {
margin-left: 0;
list-style: none;
}
.list-none li:before {
content: '';
}
.list-square {
margin-left: 1.5em;
list-style: square;
}
.list-square li:before {
content: '';
}
.list-disc {
margin-left: 1.5em;
list-style: disc;
}
.list-disc li:before {
content: '';
}
.list-circle {
margin-left: 1.5em;
list-style: circle;
}
.list-circle li:before {
content: '';
}
.list-decimal {
margin-left: 1.5em;
list-style: decimal;
}
.list-decimal li:before {
content: '';
}
.list-inline {
margin-left: 0;
}
.list-inline li {
display: inline-block;
margin: 0;
margin-right: 1em;
}
.list-inline li:Last-Child {
margin-right: 0;
}
.list-inline.list-inline-sep li {
margin-right: 0;
}
.list-inline.list-inline-sep li:after {
content: " | ";
}
.list-inline.list-inline-sep li:Last-Child:after {
content: '';
}
.list-inline.list-inline-dash li {
margin-right: 0;
}
.list-inline.list-inline-dash li:after {
content: " - ";
}
.list-inline.list-inline-dash li:Last-Child:after {
content: '';
}
.list-inline.list-inline-comma li {
margin-right: 0;
}
.list-inline.list-inline-comma li:after {
content: ", ";
}
.list-inline.list-inline-comma li:Last-Child:after {
content: ". ";
}
.list-block li {
display: block;
margin-right: 0;
}
/* Tables */
table {
max-width: 100%;
border-collapse: collapse;
border-spacing: 0;
}
.table {
width: 100%;
}
.table caption,
.table th,
.table td {
padding: 0.375em;
}
.table caption {
font-weight: bold;
text-align: left;
border-bottom: 2px solid;
}
.table th {
font-weight: bold;
}
.table th,
.table td {
border-bottom: 1px solid;
}
.table thead th {
vertical-align: bottom;
}
.table tbody tr:hover td {
background-color: rgba(34, 34, 34, 0.050000000000000044);
}
.table tfoot {
font-style: italic;
}
.table tfoot td {
border-bottom: 0;
vertical-align: top;
}
@media (max-width: 640px) {
.table-responsive {
width: 100%;
overflow-y: hidden;
overflow-x: scroll;
margin-bottom: 1.5em;
}
.table-responsive table {
width: 100%;
margin-bottom: 0;
}
.table-responsive thead,
.table-responsive tbody,
.table-responsive tfoot,
.table-responsive tr,
.table-responsive th,
.table-responsive td {
white-space: nowrap;
}
}
/* Quotes, code and poetry */
q {
quotes: "\201C" "\201D" "\2018" "\2019";
}
:lang(en) > q {
quotes: "\201C" "\201D" "\2018" "\2019";
}
:lang(fr) > q {
quotes: "\00AB\A0" "\A0\00BB" "\201C" "\201D" "\2018" "\2019";
}
:lang(es) > q {
quotes: "\00AB" "\00BB" "\201C" "\201D";
}
:lang(it) > q {
quotes: "\00AB\A0" "\A0\00BB" "\201C" "\201D";
}
:lang(de) > q {
quotes: "\00BB" "\00AB" "\203A" "\2039";
}
:lang(no) > q {
quotes: "\00AB\A0" "\A0\00BB" "\2039" "\203A";
}
/* [en] http://en.wikipedia.org/wiki/International_variation_in_quotation_marks */
q:before {
content: open-quote;
}
q:after {
content: close-quote;
}
blockquote {
position: relative;
padding-left: 1.5em;
border: solid rgba(34, 34, 34, 0.19999999999999996);
border-width: 0 0 0 5px;
}
blockquote:before {
z-index: -1;
position: absolute;
left: 0;
top: 0;
content: "\00AB";
line-height: 0;
font-size: 10em;
color: rgba(34, 34, 34, 0.09999999999999998);
}
cite,
.cite {
font-style: italic;
}
address {
font-style: italic;
}
pre,
code,
kbd,
samp,
var,
tt {
font-family: monospace;
font-size: 1em;
}
pre {
white-space: pre-wrap;
word-break: break-all;
word-wrap: break-word;
}
kbd {
white-space: nowrap;
padding: .1em .3em;
background-color: #eee;
border: 1px solid #aaa;
border-radius: 4px;
box-shadow: 0 2px 0 rgba(0, 0, 0, 0.2), 0 0 0 1px #ffffff inset;
color: #333;
}
samp {
font-weight: bold;
}
var {
font-style: italic;
}
/* Box */
.box {
display: block;
margin-bottom: 1.5em;
padding: 1.5em 1.5em;
padding-bottom: .1em;
border: 1px solid;
}
@media print {
.box {
border: 1px solid !important;
}
}
@media (min-width: 640px) {
.box.right {
width: 33%;
margin-left: 1.5em;
}
.box.left {
width: 33%;
margin-right: 1.5em;
}
.box.center {
width: 75%;
}
}
/* Paragraphs */
p,
.p,
ul,
ol,
dl,
dd,
blockquote,
address,
pre,
.table,
fieldset {
margin-bottom: 1.5em;
}
/* Typography for small screens
[fr] http://www.alsacreations.com/astuce/lire/1177 */
@media (max-width: 640px) {
/* fixer une largeur maximale de 100 % aux elements potentiellement problematiques */
img,
table,
td,
blockquote,
code,
pre,
textarea,
input,
iframe,
object,
embed,
video {
max-width: 100% !important;
}
/* gestion des mots longs */
textarea,
table,
td,
th,
pre,
code,
samp {
word-wrap: break-word;
/* cesure forcee */
}
pre,
code,
samp {
white-space: pre-line;
/* passage a la ligne specifique pour les elements a chasse fixe */
}
}
/* orientation iOS5 font-size fix */
@media (orientation: landscape) and (max-device-width: 640px) {
html,
body {
-webkit-text-size-adjust: 100%;
}
}
/* Print styles from HTML5 Boilerplate
Inlined to avoid required HTTP connection: h5bp.com/r */
@media print {
pre,
blockquote {
page-break-inside: avoid;
}
thead {
display: table-header-group;
}
tr,
img {
page-break-inside: avoid;
}
@page {
margin: 2cm .5cm;
}
p,
h2,
h3 {
orphans: 3;
widows: 3;
}
h2,
h3 {
page-break-after: avoid;
}
}
/* --------------------------------------------------
Hyperlinks
Tiny Typo v1.0 | MIT License
(c) 2010-2013 tinytypo.tetue.net
----------------------------------------------------- */
/* Hyperlinks
[fr] Signalétique des hyperliens : http://letrainde13h37.fr/43/signaletique-hyperliens/ */
a {
background: transparent;
color: inherit;
}
a:link {
transition: .5s;
}
a:visited {
color: inherit;
}
a:focus {
outline: thin dotted;
background: #222222 !important;
border-color: #222222 !important;
color: #f8f8f8 !important;
text-shadow: none;
}
a:hover {
outline: 0;
cursor: pointer;
}
a:active {
outline: 0;
}
/* a { outline: none; }
[en] http://www.outlinenone.com
[fr] http://www.outlinenone.fr
*/
a:after,
a:before,
a small {
font-size: 90%;
opacity: .9;
}
a[hreflang]:after {
content: "\0000a0[" attr(hreflang) "]";
}
/* External Links */
a.external:after {
content: "\0000a0\279A";
}
a[hreflang].external:after {
content: "\0000a0[" attr(hreflang) "]\0000a0\279A";
}
/* mailto / tel */
a.mailto:after {
content: "\0000a0\2709";
}
a.tel:after {
content: "\0000a0\2706";
}
/* Documents */
a.download:after {
content: "\0000a0\21A7";
}
a[hreflang].download:after {
content: "\0000a0[" attr(hreflang) "]\0000a0\21A7";
}
a.audio:after {
content: "\0000a0\266B";
}
a[hreflang].audio:after {
content: "\0000a0[" attr(hreflang) "]\0000a0\266B";
}
/* Linked images */
a img {
border: 0;
}
a:focus img,
a:active img {
-moz-transform: translateY(1px);
-webkit-transform: translateY(1px);
-o-transform: translateY(1px);
-ms-transform: translate(1px);
transform: translateY(1px);
}
@media print {
a,
a:visited {
text-decoration: underline;
}
a:after {
content: '';
}
a[rel="external"]:after,
a.external:after {
content: " (" attr(href) ")";
}
.ir a:after,
a[href^="javascript:"]:after,
a[href^="#"]:after {
content: '';
}
/* Don't show links for images, or javascript/internal links */
}
/* --------------------------------------------------
Illustrations, images and albums
Tiny Typo v1.0 | MIT License
(c) 2010-2013 tinytypo.tetue.net
----------------------------------------------------- */
/* Make images responsive by default */
img,
object,
embed {
max-width: 100%;
height: auto;
}
object,
embed {
height: 100%;
}
@media print {
img {
max-width: 100% !important;
}
}
/* Remove the gap between images, videos, audio and canvas
and the bottom of their containers: h5bp.com/i/440 */
audio,
canvas,
video,
img {
vertical-align: middle;
}
/* Correct `inline-block` display not defined in IE 8/9 */
audio,
canvas,
video {
display: inline-block;
}
/* Prevent modern browsers from displaying `audio` without controls.
Remove excess height in iOS 5 devices. */
audio:not([controls]) {
display: none;
height: 0;
}
img {
border: 0;
}
/* Bicubic resizing for non-native sized IMG:
code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ */
img {
-ms-interpolation-mode: bicubic;
}
svg:not(:root) {
overflow: hidden;
}
/* thumbnail */
.thumb,
.thumb.left {
margin: 0 10px 10px 0;
}
.thumb.right {
margin: 0 0 10px 10px;
}
/* style effects */
img.round {
border-radius: 5px;
}
img.circle {
border-radius: 50%;
}
img.border {
padding: 4px;
background-color: #fff;
border: 1px solid #bbb;
}
img.shadow {
box-shadow: -1px 2px 5px 1px rgba(0, 0, 0, 0.7), -1px 2px 20px rgba(255, 255, 255, 0.6) inset;
}
/* figure */
figure {
margin: 0;
margin-bottom: 0.75em;
text-align: center;
}
figure.center {
margin-bottom: 1.5em;
}
figure.left {
margin-right: 1.5em;
}
figure.right {
margin-left: 1.5em;
}
@media (max-width: 640px) {
figure {
margin-bottom: 1.5em;
}
figure.left {
float: none;
margin-right: 0;
}
figure.right {
float: none;
margin-left: 0;
}
}
/* album */
.album {
margin-bottom: 1.5em;
}
.album ul {
overflow: hidden;
margin: 0;
list-style: none;
}
.album li {
float: left;
margin: 0;
margin: 0 10px 10px 0;
}
.album .thumb {
margin: 0;
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 539 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 866 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 678 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 501 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 792 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 459 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 634 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 444 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 779 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 808 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 814 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 959 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 527 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 828 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 607 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 868 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 800 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 520 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 959 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 545 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 924 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 577 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1006 B

View File

@ -0,0 +1,13 @@
(function() {
function onScroll(e) {
var sidebar = document.getElementById('sidebar-container-fixed');
if (window.scrollY > 0) {
sidebar.style.width = sidebar.offsetWidth + 'px'
sidebar.classList.add('sticky');
} else {
sidebar.style.width = 'auto'
sidebar.classList.remove('sticky');
}
}
document.addEventListener('scroll', onScroll);
})();

View File

@ -0,0 +1,47 @@
{% if GOOGLE_ANALYTICS %}
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', '{{GOOGLE_ANALYTICS}}']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
{% endif %}
{% if GAUGES %}
<script type="text/javascript">
var _gauges = _gauges || [];
(function() {
var t = document.createElement('script');
t.type = 'text/javascript';
t.async = true;
t.id = 'gauges-tracker';
t.setAttribute('data-site-id', '{{GAUGES}}');
t.src = '//secure.gaug.es/track.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(t, s);
})();
</script>
{% endif %}
{% if PIWIK_URL and PIWIK_SITE_ID %}
<script type="text/javascript">
{% if PIWIK_SSL_URL %}
var pkBaseURL = "{{ PIWIK_SSL_URL }}";
{% else %}
var pkBaseURL = "{{ PIWIK_URL }}";
{% endif %}
var _paq = _paq || [];
_paq.push(["trackPageView"]);
_paq.push(["enableLinkTracking"]);
(function() {
var u=(("https:" == document.location.protocol) ? "https" : "http")+"://"+pkBaseURL+"/";
_paq.push(["setTrackerUrl", u+"piwik.php"]);
_paq.push(["setSiteId", "{{ PIWIK_SITE_ID }}"]);
var d=document, g=d.createElement("script"), s=d.getElementsByTagName("script")[0]; g.type="text/javascript";
g.defer=true; g.async=true; g.src=u+"piwik.js"; s.parentNode.insertBefore(g,s);
})();
</script>
<noscript><p><img src="//{{PIWIK_SITE_URL}}/piwik.php?idsite={{PIWIK_SITE_ID}}" style="border:0;" alt="" /></p></noscript>
{% endif %}

View File

@ -0,0 +1,57 @@
{% extends "base.html" %}
{% block title %}{{ article.title }} - {{ SITENAME }}{% endblock %}
{% block extra_meta %}
<meta name="description" content="{{ article.summary|striptags }}">
{% if PELICAN_SOBER_TWITTER_CARD_CREATOR or PELICAN_SOBER_TWITTER_CARD_SITE %}
<meta name="twitter:card" content="summary">
{% if PELICAN_SOBER_TWITTER_CARD_SITE %}
<meta name="twitter:site" content="@{{ PELICAN_SOBER_TWITTER_CARD_SITE }}">
{% endif %}
{% if PELICAN_SOBER_TWITTER_CARD_CREATOR %}
<meta name="twitter:creator" content="@{{ PELICAN_SOBER_TWITTER_CARD_CREATOR }}">
{% endif %}
<meta name="twitter:title" content="{{ article.title }}">
<meta name="twitter:description" content="{{ article.summary|striptags }}">
<meta name="twitter:url" content="{{ SITEURL }}/{{ article.url }}">
{% endif %}
{% endblock %}
{% block content %}
<article class="full">
<h1>{{ article.title }}</h1>
{% include 'metadata.inc.html' %}
{{ article.content }}
</article>
{% if TWITTER_USERNAME %}
<p>
<a href="https://twitter.com/share" class="twitter-share-button" data-via="{{ TWITTER_USERNAME }}" data-lang="en" data-size="large" data-related="{{ TWITTER_USERNAME }}">Tweet</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
</p>
{% endif %}
{% if DISQUS_SITENAME and article.status != 'draft' %}
<div class="comments">
<h2>Comments !</h2>
<div id="disqus_thread"></div>
<script type="text/javascript">
var disqus_identifier = "{{ article.url }}";
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//{{ DISQUS_SITENAME }}.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
</div>
{% endif %}
{% endblock %}

View File

@ -0,0 +1,3 @@
<a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a>
<time datetime="{{ article.date.isoformat() }}">{{ article.locale_date }}</time>
{% if article.tags %}<p class="tags">tags: {% for tag in article.tags %}<a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a>{% endfor %}</p>{% endif %}

View File

@ -0,0 +1,9 @@
<article class="summary">
{% include 'metadata.inc.html' %}
<div>
<h2>
<a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a>
</h2>
<p>{{ article.summary }}</p>
</div>
</article>

View File

@ -0,0 +1,14 @@
{% extends "base.html" %}
{% block title %}{{ author }} - {{ SITENAME }}{% endblock %}
{% block content %}
<h1>Posts published by: {{ author }}</h1>
{% for article in articles_page.object_list %}
{% include 'article_summary.inc.html' %}
{% endfor %}
{% include 'pagination.inc.html' %}
{% endblock %}

114
theme/templates/base.html Normal file
View File

@ -0,0 +1,114 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>{% block title %}{{ SITENAME }}{%endblock%}</title>
<meta name="author" content="{{ AUTHOR }}">
{% block extra_meta %}
{% endblock %}
<link rel="stylesheet" href="{{ SITEURL }}/theme/css/{{ CSS_FILE }}" type="text/css" />
{% if PELICAN_SOBER_STICKY_SIDEBAR %}
<script type="text/javascript" src="{{ SITEURL }}/theme/js/custom_scripts.js"></script>
{% endif %}
{% block scripts %}
{% endblock %}
{% if FEED_ALL_ATOM %}
<link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_ATOM }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Atom Feed" />
{% endif %}
{% if FEED_ALL_RSS %}
<link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_RSS }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} RSS Feed" />
{% endif %}
</head>
<body>
{{ FEED_ATOM }}
<div class="container">
<header>
<div class="feeds">
{% if FEED_ALL_ATOM %}
<a href="{{ SITEURL }}/{{ FEED_ALL_ATOM }}" rel="alternate"><img src="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/images/icons/feed-32px.png" alt="atom feed"/></a>
{% endif %}
{% if FEED_ALL_RSS %}
<a href="{{ SITEURL }}/{{ FEED_ALL_RSS }}" rel="alternate"><img src="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/images/icons/feed-32px.png" alt="rss feed"/></a>
{% endif %}
</div>
{% if PAGES %}
<nav class="pages">
{% for p in PAGES %}
<a href="{{ SITEURL }}/{{ p.url }}">{{ p.title }}</a>
{% if not loop.last %}-{% endif %}
{% endfor %}
</nav>
{% endif %}
<a href="{{ SITEURL }}" class="title">{{ SITENAME }}</a>
</header>
<div class="wrapper">
<div role="main" class="content">
{% block content %}{% endblock %}
</div>
<div class="sidebar">
<div class="sidebar-container" {% if PELICAN_SOBER_STICKY_SIDEBAR %}id="sidebar-container-fixed"{% endif %}>
{% if PELICAN_SOBER_ABOUT %}
<aside>
<h2>About</h2>
<p>
{{ PELICAN_SOBER_ABOUT }}
</p>
</aside>
{% endif %}
<nav>
<h2>Categories</h2>
<ul>
{% for cat, null in categories %}
<li {% if cat == category %}class="active"{% endif %}><a href="{{ SITEURL }}/{{ cat.url }}">{{ cat }}</a></li>
{% endfor %}
</ul>
</nav>
{% if SOCIAL %}
<aside>
<h2>Social</h2>
<ul class="social">
{% for name, link in SOCIAL %}
<li><a href="{{ link }}">{{ name }}</a><i></i></li>
{% endfor %}
</ul>
</aside>
{% endif %}
{% if LINKS %}
<aside>
<h2>Blogroll</h2>
<ul>
{% for name, link in LINKS %}
<li><a href="{{ link }}">{{ name }}</a></li>
{% endfor %}
</ul>
</aside>
{% endif %}
</div>
</div>
</div>
<footer>
<p role="contentinfo">
{{ AUTHOR }} - Proudly powered by <a href="http://alexis.notmyidea.org/pelican/">pelican</a>. Theme <a href="https://github.com/fle/pelican-sober">pelican-sober</a>.
</p>
</footer>
</div>
{% include "analytics.html" %}
</body>
</html>

View File

@ -0,0 +1,14 @@
{% extends "base.html" %}
{% block title %}{{ category }} - {{ SITENAME }}{% endblock %}
{% block content %}
<h1>Posts categorized under: {{ category }}</h1>
{% for article in articles_page.object_list %}
{% include 'article_summary.inc.html' %}
{% endfor %}
{% include 'pagination.inc.html' %}
{% endblock %}

View File

@ -0,0 +1,48 @@
{% extends "base.html" %}
{% block content_title %}{% endblock %}
{% block content %}
{% if not PELICAN_SOBER_HOME_LISTS_ARTICLES %}
{% for article in articles %}
{% if loop.index == 1 %}
<article>
<h1><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></h1>
{{ article.content }}
</article>
<hr />
{% if loop.length > 1 %}
<div>
<h3>Last posts</h3>
<ol class="archive">
{% endif %}
{% elif loop.index < 7 %}
<li>
{% include 'article_link.inc.html' %}
</li>
{% endif %}
{% endfor %}
{% if articles|length > 1 %}
</ol>
</div>
{% endif %}
{% else %}
{% for article in articles_page.object_list %}
{% include 'article_summary.inc.html' %}
{% endfor %}
{% include 'pagination.inc.html' %}
{% endif %}
{% endblock content %}

View File

@ -0,0 +1,11 @@
<div class="metadata">
<time datetime="{{ article.date.isoformat() }}">{{ article.locale_date }}</time>
{% if article.author %}
<address class="vcard author">
by <a class="url fn" href="{{ SITEURL }}/{{ article.author.url }}">{{ article.author }}</a>
</address>
{% endif %}
in <a href="{{ SITEURL }}/{{ article.category.url }}">{{ article.category }}</a>
{% if article.tags %}<p class="tags">tagged {% for tag in article.tags %}<a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a>{% if not loop.last%}, {% endif %}{% endfor %}</p>{% endif %}
{% if PDF_PROCEESOR %}<p><a href="{{ SITEURL }}/pdf/{{ article.slug }}.pdf">Download the .pdf</a></p>{% endif %}
</div>

View File

@ -0,0 +1,9 @@
{% extends "base.html" %}
{% block title %}{{ page.title }}- {{ SITENAME }}{% endblock %}
{% block content %}
<h1>{{ page.title }}</h1>
{{ page.content }}
{% endblock %}

View File

@ -0,0 +1,15 @@
{% if DEFAULT_PAGINATION %}
<div class="pagination">
{% if articles_page.has_previous() %}
{% if articles_page.previous_page_number() == 1 %}
<a href="{{ SITEURL }}/{{ page_name }}.html">&laquo;</a>
{% else %}
<a href="{{ SITEURL }}/{{ page_name }}{{ articles_page.previous_page_number() }}.html">&laquo;</a>
{% endif %}
{% endif %}
Page {{ articles_page.number }} / {{ articles_paginator.num_pages }}
{% if articles_page.has_next() %}
<a href="{{ SITEURL }}/{{ page_name }}{{ articles_page.next_page_number() }}.html">&raquo;</a>
{% endif %}
</div>
{% endif %}

14
theme/templates/tag.html Normal file
View File

@ -0,0 +1,14 @@
{% extends "base.html" %}
{% block title %}{{ tag }} - {{ SITENAME }}{% endblock %}
{% block content %}
<h1>Post tagged: {{ tag }}</h1>
{% for article in articles_page.object_list %}
{% include 'article_summary.inc.html' %}
{% endfor %}
{% include 'pagination.inc.html' %}
{% endblock %}

14
theme/templates/tags.html Normal file
View File

@ -0,0 +1,14 @@
{% extends "base.html" %}
{% block title %}{{ SITENAME }}{% endblock %}
{% block content %}
<h1>Tags</h1>
<ul class="tagcloud">
{% for tag in tag_cloud %}
<li class="tag-{{ tag.1 }}"><a href="{{ SITEURL }}/{{ tag.0.url }}">{{ tag.0 }}</a></li>
{% endfor %}
</ul>
{% endblock %}