Merge pull request 'Custom Solarized Theme' (#1) from customtheme into main
Reviewed-on: #1
This commit is contained in:
commit
ffd355f4df
|
@ -3,7 +3,7 @@ Vertical Bars In Graphite
|
||||||
:date: 2012-02-08 15:10
|
:date: 2012-02-08 15:10
|
||||||
:author: tyrel
|
:author: tyrel
|
||||||
:category: Tech
|
:category: Tech
|
||||||
:tags: graphite, txStatsD
|
:tags: graphite, statsd
|
||||||
:slug: vertical-bars-in-graphite
|
:slug: vertical-bars-in-graphite
|
||||||
:status: published
|
:status: published
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ CFEngine3 Install on CentOS 5.7
|
||||||
###############################
|
###############################
|
||||||
:date: 2012-05-25 03:57
|
:date: 2012-05-25 03:57
|
||||||
:author: tyrel
|
:author: tyrel
|
||||||
:category: outdated
|
:category: Outdated
|
||||||
:tags: cfengine, centos
|
:tags: cfengine, centos
|
||||||
:slug: cfengine3-install-on-centos-5-7
|
:slug: cfengine3-install-on-centos-5-7
|
||||||
:status: published
|
:status: published
|
||||||
|
|
|
@ -2,8 +2,8 @@ Garage Door Opener
|
||||||
##################
|
##################
|
||||||
:date: 2022-01-09 22:46
|
:date: 2022-01-09 22:46
|
||||||
:author: tyrel
|
:author: tyrel
|
||||||
:category: Tech,
|
:category: Tech
|
||||||
:tags: HomeAssistant, home
|
:tags: home-assistant, home
|
||||||
:slug: garage-door-opener
|
:slug: garage-door-opener
|
||||||
:status: published
|
:status: published
|
||||||
|
|
||||||
|
|
|
@ -19,13 +19,13 @@ You can do about 95% of your database queries automatically by using the ORM.
|
||||||
|
|
||||||
.. code:: python
|
.. code:: python
|
||||||
|
|
||||||
entry, created = Entry.objects.get_or_create(headline="blah blah blah")
|
entry, created = Entry.objects.get_or_create(headline="blah blah blah")
|
||||||
|
|
||||||
.. code:: python
|
.. code:: python
|
||||||
|
|
||||||
q = Entry.objects.filter(headline__startswith="What")
|
q = Entry.objects.filter(headline__startswith="What")
|
||||||
q = q.filter(pub_date__lte=datetime.date.today())
|
q = q.filter(pub_date__lte=datetime.date.today())
|
||||||
q = q.exclude(body_text__icontains="food")
|
q = q.exclude(body_text__icontains="food")
|
||||||
|
|
||||||
Above are some samples from the DjangoDocs.
|
Above are some samples from the DjangoDocs.
|
||||||
But enough about Django.
|
But enough about Django.
|
||||||
|
|
|
@ -6,9 +6,17 @@ About
|
||||||
:slug: about
|
:slug: about
|
||||||
:status: published
|
:status: published
|
||||||
|
|
||||||
|
About Tyrel
|
||||||
|
===========
|
||||||
|
|
||||||
|
|
||||||
Senior Software Engineer with a back end focus. Specializing in Python and Go.
|
Senior Software Engineer with a back end focus. Specializing in Python and Go.
|
||||||
|
|
||||||
I’m a very infrequent blogger. I will go months without any posts, some time years.
|
I’m a very infrequent blogger. I will go months without any posts, some time years.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Site notes
|
||||||
|
~~~~~~~~~~
|
||||||
|
|
||||||
|
This blog is proudly powered by `Pelican <https://getpelican.com/>`_, which takes great advantage of Python.
|
||||||
|
|
|
@ -2,16 +2,18 @@ from pathlib import Path
|
||||||
|
|
||||||
pwd = Path.cwd()
|
pwd = Path.cwd()
|
||||||
AUTHOR = 'Tyrel Souza'
|
AUTHOR = 'Tyrel Souza'
|
||||||
SITENAME = "Tyrel Souza's Blog"
|
SITENAME = "Tyrel's Blog"
|
||||||
TWITTER_USERNAME = 'tyrelsouza'
|
TWITTER_USERNAME = 'tyrelsouza'
|
||||||
SITEURL = ''
|
SITEURL = ''
|
||||||
SITESUBTITLE = 'Code, Tech, Home Automation, Personal Blog'
|
SITESUBTITLE = 'Code, Tech, Automation'
|
||||||
|
|
||||||
|
SITEBASE = ""
|
||||||
|
|
||||||
|
|
||||||
MENUITEMS = [
|
MENUITEMS = [
|
||||||
('Home', '/blog/'),
|
('Home', f'{SITEBASE}/'),
|
||||||
('Tags', '/blog/tags.html'),
|
('Tags', f'{SITEBASE}/tags.html'),
|
||||||
('Categories', '/blog/categories.html'),
|
('Categories', f'{SITEBASE}/categories.html'),
|
||||||
]
|
]
|
||||||
LINKS = (
|
LINKS = (
|
||||||
('Code', 'https://gitea.tyrel.dev/'),
|
('Code', 'https://gitea.tyrel.dev/'),
|
||||||
|
@ -40,10 +42,15 @@ TRANSLATION_FEED_ATOM = None
|
||||||
AUTHOR_FEED_ATOM = None
|
AUTHOR_FEED_ATOM = None
|
||||||
AUTHOR_FEED_RSS = None
|
AUTHOR_FEED_RSS = None
|
||||||
|
|
||||||
|
FEED_ATOM = 'tyrel-dev.atom.xml'
|
||||||
|
FEED_RSS = 'tyrel-dev.rss'
|
||||||
|
FEED_ALL_ATOM = 'tyrel-dev.all.xml'
|
||||||
|
FEED_ALL_RSS = 'tyrel-dev.all.rss'
|
||||||
|
|
||||||
PLUGINS = [ ]
|
|
||||||
|
|
||||||
DEFAULT_PAGINATION = 10
|
PLUGINS = ["webassets"]
|
||||||
|
|
||||||
|
DEFAULT_PAGINATION = False
|
||||||
DISPLAY_CATEGORIES_ON_MENU = False
|
DISPLAY_CATEGORIES_ON_MENU = False
|
||||||
DELETE_OUTPUT_DIRECTORY = True
|
DELETE_OUTPUT_DIRECTORY = True
|
||||||
|
|
||||||
|
@ -65,4 +72,4 @@ DEFAULT_METADATA = {
|
||||||
'extras/favicon.ico': {'path': 'favicon.ico'},
|
'extras/favicon.ico': {'path': 'favicon.ico'},
|
||||||
}
|
}
|
||||||
|
|
||||||
THEME = "./themes/custom"
|
THEME = "./themes/simple"
|
||||||
|
|
|
@ -5,6 +5,7 @@ import os
|
||||||
import sys
|
import sys
|
||||||
sys.path.append(os.curdir)
|
sys.path.append(os.curdir)
|
||||||
from pelicanconf import *
|
from pelicanconf import *
|
||||||
|
SITEBASE = "/blog"
|
||||||
|
|
||||||
# If your site is available via HTTPS, make sure SITEURL begins with https://
|
# If your site is available via HTTPS, make sure SITEURL begins with https://
|
||||||
SITEURL = 'https://tyrel.dev/blog'
|
SITEURL = 'https://tyrel.dev/blog'
|
||||||
|
|
|
@ -21,3 +21,7 @@ soupsieve==2.3.2.post1
|
||||||
Unidecode==1.3.6
|
Unidecode==1.3.6
|
||||||
|
|
||||||
python-slugify
|
python-slugify
|
||||||
|
|
||||||
|
webassets==2.0
|
||||||
|
libsass==0.21.0
|
||||||
|
livereload==2.6.3
|
||||||
|
|
113
themes/simple/static/css/main.css
Normal file
113
themes/simple/static/css/main.css
Normal file
|
@ -0,0 +1,113 @@
|
||||||
|
@import url("reset.css");
|
||||||
|
@import url("pygment.css");
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: 'Lato', 'Trebuchet MS', Trebuchet, 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;
|
||||||
|
line-height: 1.429;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
text-align: left;
|
||||||
|
min-height: 95vh;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
color: rgb(131, 148, 150);
|
||||||
|
margin: 0 10 0 10;
|
||||||
|
padding-left: 0.75rem;
|
||||||
|
line-height: 1.2rem;
|
||||||
|
font-size: 14px;
|
||||||
|
text-align: left
|
||||||
|
}
|
||||||
|
|
||||||
|
.literal {
|
||||||
|
border-radius: 5px;
|
||||||
|
-moz-border-radius: 5px;
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
|
border: 1px solid #BCBEC0;
|
||||||
|
padding: 2px;
|
||||||
|
font:12px Monaco,Consolas,"Andale Mono","DejaVu Sans Mono",monospace
|
||||||
|
}
|
||||||
|
|
||||||
|
.literal-block {
|
||||||
|
width: 95%;
|
||||||
|
border-radius: 5px;
|
||||||
|
-moz-border-radius: 5px;
|
||||||
|
-webkit-border-radius: 5px;
|
||||||
|
background-color: #eee8d5;
|
||||||
|
border: 1px solid #BCBEC0;
|
||||||
|
padding: 0.5rem;
|
||||||
|
margin: 0.75rem;
|
||||||
|
font:12px Monaco,Consolas,"Andale Mono","DejaVu Sans Mono",monospace
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
article h2 {
|
||||||
|
line-height: 2rem;
|
||||||
|
}
|
||||||
|
article ul {
|
||||||
|
margin-left: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.caps {font-size:.92em;}
|
||||||
|
.amp {color:#666; font-size:1.05em;font-family:"Warnock Pro", "Goudy Old Style","Palatino","Book Antiqua",serif; font-style:italic;}
|
||||||
|
.dquo {margin-left:-.38em;}
|
||||||
|
|
||||||
|
|
||||||
|
.parent-panel { padding-left:20%;width:100%; }
|
||||||
|
.right-panel { position:relative;float:left;width:100%; }
|
||||||
|
.right-panel-content {
|
||||||
|
max-width: 60%;
|
||||||
|
border-left: 2px dashed #b58900;
|
||||||
|
min-height: 96vh;
|
||||||
|
padding-left: 0.75rem;
|
||||||
|
|
||||||
|
}
|
||||||
|
.right-panel-content img {
|
||||||
|
margin: 1rem;
|
||||||
|
max-width: 50rem;
|
||||||
|
}
|
||||||
|
.left-panel {
|
||||||
|
position:relative;
|
||||||
|
float:left;
|
||||||
|
width:20%;
|
||||||
|
right:20%;
|
||||||
|
margin-left:-101%;
|
||||||
|
text-align:right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.small {
|
||||||
|
font-size: 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.article-list-title {
|
||||||
|
font-size: 1.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
border: 2px dotted #b58900;;
|
||||||
|
border-style: none none dashed;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tags {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr.end {
|
||||||
|
padding-top: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.indent {
|
||||||
|
font-size: 0.6rem;
|
||||||
|
margin-left: 5.1rem;
|
||||||
|
/*border-bottom: 2px dotted #b58900;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
h3.entry-title{
|
||||||
|
border-bottom: 1px dotted #b58900;
|
||||||
|
padding-bottom: 0.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.permalink {
|
||||||
|
float:right;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:link.permalink { text-decoration: none; }
|
205
themes/simple/static/css/pygment.css
Normal file
205
themes/simple/static/css/pygment.css
Normal file
|
@ -0,0 +1,205 @@
|
||||||
|
.hll {
|
||||||
|
background-color:#eee;
|
||||||
|
}
|
||||||
|
.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;
|
||||||
|
}
|
52
themes/simple/static/css/reset.css
Normal file
52
themes/simple/static/css/reset.css
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
/*
|
||||||
|
Name: Reset Stylesheet
|
||||||
|
Description: Resets browser's default CSS
|
||||||
|
Author: Eric Meyer
|
||||||
|
Author URI: https://meyerweb.com/eric/tools/css/reset/
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* v1.0 | 20080212 */
|
||||||
|
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, font, img, ins, kbd, q, s, samp,
|
||||||
|
small, strike, strong, sub, sup, tt, var,
|
||||||
|
b, u, i, center,
|
||||||
|
dl, dt, dd, ol, ul, li,
|
||||||
|
fieldset, form, label, legend,
|
||||||
|
table, caption, tbody, tfoot, thead, tr, th, td {
|
||||||
|
background: transparent;
|
||||||
|
border: 0;
|
||||||
|
font-size: 100%;
|
||||||
|
margin: 0;
|
||||||
|
outline: 0;
|
||||||
|
padding: 0;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {line-height: 1;}
|
||||||
|
|
||||||
|
ol, ul {list-style: none;}
|
||||||
|
|
||||||
|
blockquote, q {quotes: none;}
|
||||||
|
|
||||||
|
blockquote:before, blockquote:after,
|
||||||
|
q:before, q:after {
|
||||||
|
content: '';
|
||||||
|
content: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* remember to define focus styles! */
|
||||||
|
:focus {
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* remember to highlight inserts somehow! */
|
||||||
|
ins {text-decoration: none;}
|
||||||
|
del {text-decoration: line-through;}
|
||||||
|
|
||||||
|
/* tables still need 'cellspacing="0"' in the markup */
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0;
|
||||||
|
}
|
300
themes/simple/static/css/solarized.scss
Normal file
300
themes/simple/static/css/solarized.scss
Normal file
|
@ -0,0 +1,300 @@
|
||||||
|
article,
|
||||||
|
aside,
|
||||||
|
details,
|
||||||
|
figcaption,
|
||||||
|
figure,
|
||||||
|
footer,
|
||||||
|
header,
|
||||||
|
hgroup,
|
||||||
|
nav,
|
||||||
|
section,
|
||||||
|
summary {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
audio,
|
||||||
|
canvas,
|
||||||
|
video {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
audio:not([controls]) {
|
||||||
|
display: none;
|
||||||
|
height: 0;
|
||||||
|
}
|
||||||
|
[hidden] {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
html {
|
||||||
|
font-family: sans-serif;
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
-ms-text-size-adjust: 100%;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
a:focus {
|
||||||
|
outline: thin dotted;
|
||||||
|
}
|
||||||
|
a:active,
|
||||||
|
a:hover {
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
font-size: 2em;
|
||||||
|
}
|
||||||
|
abbr[title] {
|
||||||
|
border-bottom: 1px dotted;
|
||||||
|
}
|
||||||
|
b,
|
||||||
|
strong {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
dfn {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
mark {
|
||||||
|
background: #ff0;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
code,
|
||||||
|
kbd,
|
||||||
|
pre,
|
||||||
|
samp {
|
||||||
|
font-family: monospace, serif;
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
pre {
|
||||||
|
white-space: pre-wrap;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
q {
|
||||||
|
quotes: "\201C" "\201D" "\2018" "\2019";
|
||||||
|
}
|
||||||
|
small {
|
||||||
|
font-size: 80%;
|
||||||
|
}
|
||||||
|
sub,
|
||||||
|
sup {
|
||||||
|
font-size: 75%;
|
||||||
|
line-height: 0;
|
||||||
|
position: relative;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
sup {
|
||||||
|
top: -0.5em;
|
||||||
|
}
|
||||||
|
sub {
|
||||||
|
bottom: -0.25em;
|
||||||
|
}
|
||||||
|
img {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
svg:not(:root) {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
figure {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
fieldset {
|
||||||
|
border: 1px solid #c0c0c0;
|
||||||
|
margin: 0 2px;
|
||||||
|
padding: 0.35em 0.625em 0.75em;
|
||||||
|
}
|
||||||
|
legend {
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
button,
|
||||||
|
input,
|
||||||
|
select,
|
||||||
|
textarea {
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: 100%;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
button,
|
||||||
|
input {
|
||||||
|
line-height: normal;
|
||||||
|
}
|
||||||
|
button,
|
||||||
|
html input[type="button"],
|
||||||
|
input[type="reset"],
|
||||||
|
input[type="submit"] {
|
||||||
|
-webkit-appearance: button;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
button[disabled],
|
||||||
|
input[disabled] {
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
input[type="checkbox"],
|
||||||
|
input[type="radio"] {
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
input[type="search"] {
|
||||||
|
-webkit-appearance: textfield;
|
||||||
|
-moz-box-sizing: content-box;
|
||||||
|
-webkit-box-sizing: content-box;
|
||||||
|
box-sizing: content-box;
|
||||||
|
}
|
||||||
|
input[type="search"]::-webkit-search-cancel-button,
|
||||||
|
input[type="search"]::-webkit-search-decoration {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
}
|
||||||
|
button::-moz-focus-inner,
|
||||||
|
input::-moz-focus-inner {
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
textarea {
|
||||||
|
overflow: auto;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0;
|
||||||
|
}
|
||||||
|
html {
|
||||||
|
font-family: 'PT Sans', sans-serif;
|
||||||
|
}
|
||||||
|
pre,
|
||||||
|
code {
|
||||||
|
font-family: 'Inconsolata', sans-serif;
|
||||||
|
}
|
||||||
|
h1,
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6 {
|
||||||
|
font-family: 'PT Sans Narrow', sans-serif;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
html {
|
||||||
|
background-color: #002b36;
|
||||||
|
color: #839496;
|
||||||
|
margin: 1em;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
margin: 0 auto;
|
||||||
|
/*border: 1pt solid #586e75; */
|
||||||
|
padding: 1em;
|
||||||
|
}
|
||||||
|
code {
|
||||||
|
background-color: #073642;
|
||||||
|
padding: 2px;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
color: #cb4b16;
|
||||||
|
}
|
||||||
|
a:visited {
|
||||||
|
color: #cb4b16;
|
||||||
|
}
|
||||||
|
a:hover {
|
||||||
|
color: #cb4b16;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
color: #d33682;
|
||||||
|
}
|
||||||
|
h2,
|
||||||
|
h3,
|
||||||
|
h4,
|
||||||
|
h5,
|
||||||
|
h6 {
|
||||||
|
color: #859900;
|
||||||
|
}
|
||||||
|
pre {
|
||||||
|
background-color: #002b36;
|
||||||
|
color: #839496;
|
||||||
|
border: 1pt solid #586e75;
|
||||||
|
padding: 1em;
|
||||||
|
box-shadow: 5pt 5pt 8pt #073642;
|
||||||
|
}
|
||||||
|
pre code {
|
||||||
|
background-color: #002b36;
|
||||||
|
}
|
||||||
|
/*h1 {
|
||||||
|
font-size: 2.8em;
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
font-size: 2.4em;
|
||||||
|
}
|
||||||
|
h3 {
|
||||||
|
font-size: 1.8em;
|
||||||
|
}
|
||||||
|
h4 {
|
||||||
|
font-size: 1.4em;
|
||||||
|
}
|
||||||
|
h5 {
|
||||||
|
font-size: 1.3em;
|
||||||
|
}
|
||||||
|
h6 {
|
||||||
|
font-size: 1.15em;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
.tag {
|
||||||
|
background-color: #073642;
|
||||||
|
color: #d33682;
|
||||||
|
padding: 0 0.2em;
|
||||||
|
}
|
||||||
|
.todo,
|
||||||
|
.next,
|
||||||
|
.done {
|
||||||
|
color: #002b36;
|
||||||
|
background-color: #dc322f;
|
||||||
|
padding: 0 0.2em;
|
||||||
|
}
|
||||||
|
.tag {
|
||||||
|
-webkit-border-radius: 0.35em;
|
||||||
|
-moz-border-radius: 0.35em;
|
||||||
|
border-radius: 0.35em;
|
||||||
|
}
|
||||||
|
.TODO {
|
||||||
|
-webkit-border-radius: 0.2em;
|
||||||
|
-moz-border-radius: 0.2em;
|
||||||
|
border-radius: 0.2em;
|
||||||
|
background-color: #2aa198;
|
||||||
|
}
|
||||||
|
.NEXT {
|
||||||
|
-webkit-border-radius: 0.2em;
|
||||||
|
-moz-border-radius: 0.2em;
|
||||||
|
border-radius: 0.2em;
|
||||||
|
background-color: #268bd2;
|
||||||
|
}
|
||||||
|
.ACTIVE {
|
||||||
|
-webkit-border-radius: 0.2em;
|
||||||
|
-moz-border-radius: 0.2em;
|
||||||
|
border-radius: 0.2em;
|
||||||
|
background-color: #268bd2;
|
||||||
|
}
|
||||||
|
.DONE {
|
||||||
|
-webkit-border-radius: 0.2em;
|
||||||
|
-moz-border-radius: 0.2em;
|
||||||
|
border-radius: 0.2em;
|
||||||
|
background-color: #859900;
|
||||||
|
}
|
||||||
|
.WAITING {
|
||||||
|
-webkit-border-radius: 0.2em;
|
||||||
|
-moz-border-radius: 0.2em;
|
||||||
|
border-radius: 0.2em;
|
||||||
|
background-color: #cb4b16;
|
||||||
|
}
|
||||||
|
.HOLD {
|
||||||
|
-webkit-border-radius: 0.2em;
|
||||||
|
-moz-border-radius: 0.2em;
|
||||||
|
border-radius: 0.2em;
|
||||||
|
background-color: #d33682;
|
||||||
|
}
|
||||||
|
.NOTE {
|
||||||
|
-webkit-border-radius: 0.2em;
|
||||||
|
-moz-border-radius: 0.2em;
|
||||||
|
border-radius: 0.2em;
|
||||||
|
background-color: #d33682;
|
||||||
|
}
|
||||||
|
.CANCELLED {
|
||||||
|
-webkit-border-radius: 0.2em;
|
||||||
|
-moz-border-radius: 0.2em;
|
||||||
|
border-radius: 0.2em;
|
||||||
|
background-color: #859900;
|
||||||
|
}
|
||||||
|
|
15
themes/simple/templates/archives.html
Normal file
15
themes/simple/templates/archives.html
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} - Archives{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h1>Archives for {{ SITENAME }}</h1>
|
||||||
|
<hr class="article-split">
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
{% for article in dates %}
|
||||||
|
<dt>{{ article.locale_date }}</dt>
|
||||||
|
<dd><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></dd>
|
||||||
|
{% endfor %}
|
||||||
|
</dl>
|
||||||
|
{% endblock %}
|
62
themes/simple/templates/article.html
Normal file
62
themes/simple/templates/article.html
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
{% block html_lang %}{{ article.lang }}{% endblock %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} - {{ article.title|striptags }}{% endblock %}
|
||||||
|
|
||||||
|
{% block head %}
|
||||||
|
{{ super() }}
|
||||||
|
|
||||||
|
{% import 'translations.html' as translations with context %}
|
||||||
|
{% if translations.entry_hreflang(article) %}
|
||||||
|
{{ translations.entry_hreflang(article) }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if article.description %}
|
||||||
|
<meta name="description" content="{{article.description}}" />
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% for tag in article.tags %}
|
||||||
|
<meta name="tags" content="{{tag}}" />
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<header>
|
||||||
|
<h1 class="entry-title">
|
||||||
|
{{ article.title }}
|
||||||
|
</h1>
|
||||||
|
{% import 'translations.html' as translations with context %}
|
||||||
|
{{ translations.translations_for(article) }}
|
||||||
|
<hr class="article-split">
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<footer class="post-info">
|
||||||
|
<a class="permalink" href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}"> 🔗 </a>
|
||||||
|
<time class="published" datetime="{{ article.date.isoformat() }}">
|
||||||
|
<h3>{{ article.locale_date }}</h3>
|
||||||
|
</time>
|
||||||
|
{% if article.modified %}
|
||||||
|
<time class="modified" datetime="{{ article.modified.isoformat() }}">
|
||||||
|
<h3>{{ article.locale_modified }}</h3>
|
||||||
|
</time>
|
||||||
|
{% endif %}
|
||||||
|
{% if article.tags %}
|
||||||
|
<div class="tags">
|
||||||
|
Tags:
|
||||||
|
{% for tag in article.tags %}
|
||||||
|
<a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% if article.category %}
|
||||||
|
<div class="category">
|
||||||
|
Category: <a href="{{ SITEURL }}/{{ article.category.url }}">{{ article.category }}</a>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</footer><!-- /.post-info -->
|
||||||
|
<hr class="article-split">
|
||||||
|
<article>
|
||||||
|
{{ article.content }}
|
||||||
|
</article>
|
||||||
|
{% endblock %}
|
8
themes/simple/templates/author.html
Normal file
8
themes/simple/templates/author.html
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{% extends "index.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} - Articles by {{ author }}{% endblock %}
|
||||||
|
|
||||||
|
{% block content_title %}
|
||||||
|
<h1>Articles by {{ author }}</h1>
|
||||||
|
{% endblock %}
|
||||||
|
|
12
themes/simple/templates/authors.html
Normal file
12
themes/simple/templates/authors.html
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} - Authors{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h1>Authors on {{ SITENAME }}</h1>
|
||||||
|
<ul>
|
||||||
|
{% for author, articles in authors|sort %}
|
||||||
|
<li><a href="{{ SITEURL }}/{{ author.url }}">{{ author }}</a> ({{ articles|count }})</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endblock %}
|
102
themes/simple/templates/base.html
Normal file
102
themes/simple/templates/base.html
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="{% block html_lang %}{{ DEFAULT_LANG }}{% endblock html_lang %}">
|
||||||
|
<head>
|
||||||
|
{% block head %}
|
||||||
|
<title>{% block title %}{{ SITENAME }}{% endblock title %}</title>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<meta name="generator" content="Pelican" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
{% if FEED_ALL_ATOM %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{% if FEED_ALL_ATOM_URL %}{{ FEED_ALL_ATOM_URL }}{% else %}{{ FEED_ALL_ATOM }}{% endif %}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Full Atom Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if FEED_ALL_RSS %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{% if FEED_ALL_RSS_URL %}{{ FEED_ALL_RSS_URL }}{% else %}{{ FEED_ALL_RSS }}{% endif %}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Full RSS Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if FEED_ATOM %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{%if FEED_ATOM_URL %}{{ FEED_ATOM_URL }}{% else %}{{ FEED_ATOM }}{% endif %}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Atom Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if FEED_RSS %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{% if FEED_RSS_URL %}{{ FEED_RSS_URL }}{% else %}{{ FEED_RSS }}{% endif %}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} RSS Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if CATEGORY_FEED_ATOM and category %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{% if CATEGORY_FEED_ATOM_URL %}{{ CATEGORY_FEED_ATOM_URL.format(slug=category.slug) }}{% else %}{{ CATEGORY_FEED_ATOM.format(slug=category.slug) }}{% endif %}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Categories Atom Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if CATEGORY_FEED_RSS and category %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{% if CATEGORY_FEED_RSS_URL %}{{ CATEGORY_FEED_RSS_URL.format(slug=category.slug) }}{% else %}{{ CATEGORY_FEED_RSS.format(slug=category.slug) }}{% endif %}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Categories RSS Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if TAG_FEED_ATOM and tag %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{% if TAG_FEED_ATOM_URL %}{{ TAG_FEED_ATOM_URL.format(slug=tag.slug) }}{% else %}{{ TAG_FEED_ATOM.format(slug=tag.slug) }}{% endif %}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Tags Atom Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% if TAG_FEED_RSS and tag %}
|
||||||
|
<link href="{{ FEED_DOMAIN }}/{% if TAG_FEED_RSS_URL %}{{ TAG_FEED_RSS_URL.format(slug=tag.slug) }}{% else %}{{ TAG_FEED_RSS.format(slug=tag.slug) }}{% endif %}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Tags RSS Feed" />
|
||||||
|
{% endif %}
|
||||||
|
{% endblock head %}
|
||||||
|
<link rel="stylesheet" href="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/css/{{ CSS_FILE }}" />
|
||||||
|
{% assets filters="libsass", output="css/solarized.css", "css/solarized.scss" %}
|
||||||
|
<link rel="stylesheet" href="{{ SITEURL }}/{{ ASSET_URL }}">
|
||||||
|
{% endassets %}
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="parent-panel">
|
||||||
|
<div class="right-panel">
|
||||||
|
<div class="right-panel-content">
|
||||||
|
<main>
|
||||||
|
{% block content %}
|
||||||
|
{% endblock %}
|
||||||
|
</main>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="left-panel">
|
||||||
|
<header>
|
||||||
|
<h1><a href="{{ SITEURL }}/">{{ SITENAME }}</a></h1>
|
||||||
|
{% if SITESUBTITLE %}<h2> <strong>{{ SITESUBTITLE }}</strong></h2>{% endif %}
|
||||||
|
</header>
|
||||||
|
<nav><ul>
|
||||||
|
{% for title, link in MENUITEMS %}
|
||||||
|
<li><a href="{{ link }}">{{ title }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
{% if DISPLAY_PAGES_ON_MENU %}
|
||||||
|
{% for p in pages %}
|
||||||
|
<li{% if p == page %} class="active"{% endif %}><a href="{{ SITEURL }}/{{ p.url }}">{{ p.title }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% if DISPLAY_CATEGORIES_ON_MENU %}
|
||||||
|
{% for cat, null in categories %}
|
||||||
|
<li{% if cat == category %} class="active"{% endif %}><a href="{{ SITEURL }}/{{ cat.url }}">{{ cat }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
</ul></nav>
|
||||||
|
{% if LINKS %}
|
||||||
|
<div class="blogroll">
|
||||||
|
<h2>{{ LINKS_WIDGET_NAME | default('EXTERNAL LINKS') }}</h2>
|
||||||
|
<ul>
|
||||||
|
{% for name, link in LINKS %}
|
||||||
|
<li><a href="{{ link }}">{{ name }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div><!-- /.blogroll -->
|
||||||
|
{% endif %}
|
||||||
|
{% if SOCIAL or FEED_ALL_ATOM or FEED_ALL_RSS %}
|
||||||
|
<div class="social">
|
||||||
|
<h2>{{ SOCIAL_WIDGET_NAME | default('SOCIAL LINKS') }}</h2>
|
||||||
|
<ul>
|
||||||
|
{% for name, link in SOCIAL %}
|
||||||
|
<li><a href="{{ link }}">{{ name }}</a></li>
|
||||||
|
{% endfor %}
|
||||||
|
<li><a rel="me" href="https://mastodon.social/@tyrel">Mastodon</a></li>
|
||||||
|
{% if FEED_ALL_ATOM %}
|
||||||
|
<li><a href="{{ FEED_DOMAIN }}/{% if FEED_ALL_ATOM_URL %}{{ FEED_ALL_ATOM_URL }}{% else %}{{ FEED_ALL_ATOM }}{% endif %}" type="application/atom+xml" rel="alternate">Atom Feed</a></li>
|
||||||
|
{% endif %}
|
||||||
|
{% if FEED_ALL_RSS %}
|
||||||
|
<li><a href="{{ FEED_DOMAIN }}/{% if FEED_ALL_RSS_URL %}{{ FEED_ALL_RSS_URL }}{% else %}{{ FEED_ALL_RSS }}{% endif %}" type="application/rss+xml" rel="alternate">RSS Feed</a></li>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div><!-- /.social -->
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr class="article-split end">
|
||||||
|
</body>
|
||||||
|
</html>
|
13
themes/simple/templates/categories.html
Normal file
13
themes/simple/templates/categories.html
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} - Categories{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h1>Categories on {{ SITENAME }}</h1>
|
||||||
|
<hr class="article-split">
|
||||||
|
<ul>
|
||||||
|
{% for category, articles in categories|sort %}
|
||||||
|
<li><a href="{{ SITEURL }}/{{ category.url }}">{{ category }}</a> ({{ articles|count }})</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endblock %}
|
9
themes/simple/templates/category.html
Normal file
9
themes/simple/templates/category.html
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{% extends "index.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} - {{ category }} category{% endblock %}
|
||||||
|
|
||||||
|
{% block content_title %}
|
||||||
|
<h1>Articles in the {{ category }} category</h1>
|
||||||
|
<hr class="article-split">
|
||||||
|
{% endblock %}
|
||||||
|
|
14
themes/simple/templates/gosquared.html
Normal file
14
themes/simple/templates/gosquared.html
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{% if GOSQUARED_SITENAME %}
|
||||||
|
<script type="text/javascript">
|
||||||
|
var GoSquared={};
|
||||||
|
GoSquared.acct = "{{ GOSQUARED_SITENAME }}";
|
||||||
|
(function(w){
|
||||||
|
function gs(){
|
||||||
|
w._gstc_lt=+(new Date); var d=document;
|
||||||
|
var g = d.createElement("script"); g.type = "text/javascript"; g.async = true; g.src = "https://d1l6p2sc9645hc.cloudfront.net/tracker.js";
|
||||||
|
var s = d.getElementsByTagName("script")[0]; s.parentNode.insertBefore(g, s);
|
||||||
|
}
|
||||||
|
w.addEventListener?w.addEventListener("load",gs,false):w.attachEvent("onload",gs);
|
||||||
|
})(window);
|
||||||
|
</script>
|
||||||
|
{% endif %}
|
36
themes/simple/templates/index.html
Normal file
36
themes/simple/templates/index.html
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
{% block content %}
|
||||||
|
<section id="content">
|
||||||
|
{% block content_title %}
|
||||||
|
<h1>All articles</h1>
|
||||||
|
<hr class="article-split">
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
<ul id="post-list">
|
||||||
|
{% for article in articles_page.object_list %}
|
||||||
|
<li>
|
||||||
|
<article class="hentry">
|
||||||
|
<header>
|
||||||
|
<h3 class="entry-title">
|
||||||
|
<div>
|
||||||
|
<span class="small"><time class="published" datetime="{{ article.date.isoformat() }}"> {{ article.date.isoformat().split("T")[0] }} </time></span>
|
||||||
|
<span class="article-list-title"><a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></span>
|
||||||
|
</div>
|
||||||
|
<span class="small indent">
|
||||||
|
<span class="category">{{ article.category }}</span>
|
||||||
|
<span class="">
|
||||||
|
{% for tag in article.tags|sort %}
|
||||||
|
<a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a>
|
||||||
|
{% endfor %}</span>
|
||||||
|
</span>
|
||||||
|
</h3>
|
||||||
|
</header>
|
||||||
|
</article>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul><!-- /#posts-list -->
|
||||||
|
{% if articles_page.has_other_pages() %}
|
||||||
|
{% include 'pagination.html' %}
|
||||||
|
{% endif %}
|
||||||
|
</section><!-- /#content -->
|
||||||
|
{% endblock content %}
|
28
themes/simple/templates/page.html
Normal file
28
themes/simple/templates/page.html
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
{% block html_lang %}{{ page.lang }}{% endblock %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} - {{ page.title|striptags }}{%endblock%}
|
||||||
|
|
||||||
|
{% block head %}
|
||||||
|
{{ super() }}
|
||||||
|
|
||||||
|
{% import 'translations.html' as translations with context %}
|
||||||
|
{% if translations.entry_hreflang(page) %}
|
||||||
|
{{ translations.entry_hreflang(page) }}
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h1>{{ page.title }}</h1>
|
||||||
|
<hr class="article-split">
|
||||||
|
{% import 'translations.html' as translations with context %}
|
||||||
|
{{ translations.translations_for(page) }}
|
||||||
|
|
||||||
|
{{ page.content }}
|
||||||
|
|
||||||
|
{% if page.modified %}
|
||||||
|
<p>
|
||||||
|
Last updated: {{ page.locale_modified }}
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
15
themes/simple/templates/pagination.html
Normal file
15
themes/simple/templates/pagination.html
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{% if DEFAULT_PAGINATION %}
|
||||||
|
{% set first_page = articles_paginator.page(1) %}
|
||||||
|
{% set last_page = articles_paginator.page(articles_paginator.num_pages) %}
|
||||||
|
<p class="paginator">
|
||||||
|
{% if articles_page.has_previous() %}
|
||||||
|
<a href="{{ SITEURL }}/{{ first_page.url }}">⇇</a>
|
||||||
|
<a href="{{ SITEURL }}/{{ articles_previous_page.url }}">«</a>
|
||||||
|
{% endif %}
|
||||||
|
Page {{ articles_page.number }} / {{ articles_paginator.num_pages }}
|
||||||
|
{% if articles_page.has_next() %}
|
||||||
|
<a href="{{ SITEURL }}/{{ articles_next_page.url }}">»</a>
|
||||||
|
<a href="{{ SITEURL }}/{{ last_page.url }}">⇉</a>
|
||||||
|
{% endif %}
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
14
themes/simple/templates/period_archives.html
Normal file
14
themes/simple/templates/period_archives.html
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} - {{ period | reverse | join(' ') }} archives{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h1>Archives for {{ period | reverse | join(' ') }}</h1>
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
{% for article in dates %}
|
||||||
|
<dt>{{ article.locale_date }}</dt>
|
||||||
|
<dd><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></dd>
|
||||||
|
{% endfor %}
|
||||||
|
</dl>
|
||||||
|
{% endblock %}
|
7
themes/simple/templates/tag.html
Normal file
7
themes/simple/templates/tag.html
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{% extends "index.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} - {{ tag }} tag{% endblock %}
|
||||||
|
|
||||||
|
{% block content_title %}
|
||||||
|
<h1>Articles tagged with {{ tag }}</h1>
|
||||||
|
{% endblock %}
|
13
themes/simple/templates/tags.html
Normal file
13
themes/simple/templates/tags.html
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% block title %}{{ SITENAME }} - Tags{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h1>Tags for {{ SITENAME }}</h1>
|
||||||
|
<hr class="article-split">
|
||||||
|
<ul>
|
||||||
|
{% for tag, articles in tags|sort %}
|
||||||
|
<li><a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a> ({{ articles|count }})</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
{% endblock %}
|
16
themes/simple/templates/translations.html
Normal file
16
themes/simple/templates/translations.html
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{% macro translations_for(article) %}
|
||||||
|
{% if article.translations %}
|
||||||
|
Translations:
|
||||||
|
{% for translation in article.translations %}
|
||||||
|
<a href="{{ SITEURL }}/{{ translation.url }}" hreflang="{{ translation.lang }}">{{ translation.lang }}</a>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endmacro %}
|
||||||
|
|
||||||
|
{% macro entry_hreflang(entry) %}
|
||||||
|
{% if entry.translations %}
|
||||||
|
{% for translation in entry.translations %}
|
||||||
|
<link rel="alternate" hreflang="{{ translation.lang }}" href="{{ SITEURL }}/{{ translation.url }}">
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endmacro %}
|
Loading…
Reference in New Issue
Block a user