Initial commit.

This commit is contained in:
sven 2020-12-19 23:59:44 +01:00
commit becf51fdce
89 changed files with 4926 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 KiB

View file

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 170.08 56.69" style="enable-background:new 0 0 170.08 56.69;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<path class="st0" d="M46.1,50.73h1.85v-1.86H46.1V50.73z M47.96,50.73h1.86v-1.86h-1.86V50.73z M74.55,50.73h1.86v-1.86h-1.86V50.73
z M101.19,50.73h1.85v-1.86h-1.85V50.73z M103.04,50.73h1.86v-1.86h-1.86V50.73z M139.66,50.73h1.86v-1.86h-1.86V50.73z
M141.52,50.73h1.86v-1.86h-1.86V50.73z M153.44,50.73h1.86v-1.86h-1.86V50.73z M155.29,50.73h1.86v-1.86h-1.86V50.73z
M127.79,47.02v1.86V47.02h-1.85v1.86v1.86h1.85v-1.86v1.86h1.86v-1.86v-1.86H127.79z M49.81,43.3v1.86h-1.86v1.85h1.86v-1.85v1.85
h1.86v-1.85V43.3H49.81z M57.59,45.16h1.86V43.3h-1.86V45.16z M61.3,47.02v1.86V47.02z M61.3,45.16v1.85V45.16z M61.3,43.3v1.86
V43.3h-1.86v1.86v1.85v1.86v1.86h1.86v-1.86v1.86h1.85v-1.86v-1.86v-1.85V43.3H61.3z M78.26,43.3v1.86v1.85v1.86H76.4v1.86h1.85
v-1.86h1.86v-1.86v-1.85V43.3H78.26z M86.09,45.16h1.86V43.3h-1.86V45.16z M89.8,47.02v1.86V47.02z M89.8,45.16v1.85V45.16z
M89.8,43.3v1.86V43.3h-1.86v1.86v1.85v1.86v1.86h1.86v-1.86v1.86h1.86v-1.86v-1.86v-1.85V43.3H89.8z M104.9,43.3v1.86h-1.86v1.85
h1.86v-1.85v1.85h1.86v-1.85V43.3H104.9z M29.94,47.02v1.86V47.02z M29.94,45.16v1.85V45.16z M29.94,43.3v1.86V43.3z M33.65,41.45
v1.85H31.8v1.86V43.3v-1.85h-1.86v1.85v-1.85h-1.85v1.85v1.86v1.85v1.86v1.86h1.85v-1.86v1.86h1.86v-1.86v-1.86v-1.85h1.86V43.3
h1.86v-1.85H33.65z M35.51,43.3h1.86v-1.85h-1.86V43.3z M44.24,45.16v1.85V45.16z M44.24,43.3v1.86V43.3z M46.1,41.45v1.85V41.45
h-1.86v1.85h-1.86v1.86v1.85v1.86h1.86v-1.86v1.86v1.86h1.86v-1.86v-1.86h1.85v-1.85H46.1v1.85v-1.85V43.3h1.85v-1.85H46.1z
M47.96,43.3h1.86v-1.85h-1.86V43.3z M76.4,43.3h1.86v-1.85H76.4V43.3z M99.33,45.16v1.85V45.16z M99.33,43.3v1.86V43.3z
M101.19,41.45v1.85V41.45h-1.86v1.85h-1.85v1.86v1.85v1.86h1.85v-1.86v1.86v1.86h1.86v-1.86v-1.86h1.85v-1.85h-1.85v1.85v-1.85
V43.3h1.85v-1.85H101.19z M103.04,43.3h1.86v-1.85h-1.86V43.3z M114.96,47.02v1.86V47.02z M114.96,45.16v1.85V45.16z M114.96,43.3
v1.86V43.3z M118.67,41.45v1.85h-1.86v1.86V43.3v-1.85h-1.86v1.85v-1.85h-1.86v1.85v1.86v1.85v1.86v1.86h1.86v-1.86v1.86h1.86v-1.86
v-1.86v-1.85h1.86V43.3h1.85v-1.85H118.67z M120.53,43.3h1.86v-1.85h-1.86V43.3z M137.81,45.16v1.85V45.16z M137.81,43.3v1.86V43.3z
M139.66,41.45v1.85V41.45h-1.86v1.85h-1.86v1.86v1.85v1.86h1.86v-1.86v1.86v1.86h1.86v-1.86v-1.86v-1.85V43.3h1.85v-1.85H139.66z
M141.52,43.3h1.86v-1.85h-1.86V43.3z M151.58,45.16v1.85V45.16z M151.58,43.3v1.86V43.3z M153.44,41.45v1.85V41.45h-1.85v1.85
h-1.86v1.86v1.85v1.86h1.86v-1.86v1.86v1.86h1.85v-1.86v-1.86v-1.85V43.3h1.86v-1.85H153.44z M155.29,43.3h1.86v-1.85h-1.86V43.3z
M16.64,50.73v1.85V50.73z M16.64,48.87v1.86V48.87z M16.64,47.02v1.86V47.02z M16.64,45.16v1.85V45.16z M16.64,43.3v1.86V43.3z
M16.64,41.45v1.85V41.45z M16.64,39.59v1.86V39.59z M18.49,37.74v1.86V37.74h-1.85v1.86h-1.86v1.86v1.85h-1.86v1.86h1.86V43.3v1.86
v1.85v1.86v1.86v1.85v1.85h1.86v-1.85h1.85v-1.85v-1.86v-1.86v-1.85h1.86V43.3h-1.86v1.86V43.3v-1.85v-1.86h1.86v-1.86H18.49z
M61.3,37.74v1.86V37.74h-1.86v1.86v1.86h1.86v-1.86v1.86h1.85v-1.86v-1.86H61.3z M72.69,47.02v1.86V47.02z M72.69,45.16v1.85V45.16
z M72.69,43.3v1.86V43.3z M72.69,41.45v1.85V41.45z M72.69,39.59v1.86V39.59z M72.69,37.74v1.86V37.74h-1.86v1.86v1.86v1.85v1.86
v1.85v1.86v1.86h1.86v-1.86v1.86h1.86v-1.86v-1.86v-1.85V43.3h1.86v-1.85h-1.86v1.85v-1.85v-1.86v-1.86H72.69z M89.8,37.74v1.86
V37.74h-1.86v1.86v1.86h1.86v-1.86v1.86h1.86v-1.86v-1.86H89.8z"/>
<path class="st0" d="M86.81,13.84h1.86v-1.86h-1.86V13.84z M81.24,10.13v1.85h-1.86v1.86h-1.85v1.85v1.86h1.85v-1.86v-1.85h1.86
v-1.86v1.86h1.86v-1.86v-1.85H81.24z M83.1,15.69v1.86V15.69z M84.96,10.13v1.85v1.86H83.1v1.85h-1.86v1.86h-1.86v1.86h1.86v-1.86
v1.86v1.85h1.86v-1.85v-1.86h1.85v-1.86v-1.85h1.86v-1.86v-1.85H84.96z M90.52,10.13v1.85v1.86h-1.86v1.85v1.86h-1.85v1.86v-1.86
v-1.86h-1.86v1.86v1.86v1.85H83.1v1.85h1.85v-1.85h1.86v-1.85h1.85v-1.86h1.86v-1.86v-1.85h1.86v-1.86v-1.85H90.52z M88.67,10.13
h1.86V8.27h-1.86V10.13z M79.39,6.42v1.86h-1.85v1.85h-1.86v1.85v1.86h1.86v-1.86v-1.85h1.85V8.27h1.86V6.42H79.39z M84.96,8.27
h1.86V6.42h-1.86V8.27z M86.81,8.27h1.86V6.42h-1.86V8.27z M83.1,4.56v1.86h-1.86v1.86h1.86V6.42h1.85V4.56H83.1z"/>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

View file

@ -0,0 +1,336 @@
body {background: #E8E8E8;
font-family: 'HKGroteskRegular';
font-weight: normal;
font-style: normal;
font-size: 100%;}
p {color: black;
font-family: 'HKGroteskRegular';
font-weight: normal;
font-style: normal;
font-size: 100%;
display: block; }
h1 {color: black;
font-family: 'HKGroteskRegular';
font-weight: bold;
font-style: normal;
font-size: 150%;}
h2 {color: black;
font-family: 'HKGroteskRegular';
font-weight: bold;
font-style: normal;
font-size: 130%;
padding-top: 3em;
text-transform: uppercase;}
h3 {color: black;
font-family: 'HKGroteskRegular';
font-weight: bold;
font-style: normal;
font-size: 110%; }
a:link {text-decoration: none; font-family: 'HKGroteskBold'; color: fuchsia; }
a:visited {text-decoration: none;font-family: 'HKGroteskBold'; color: purple; }
a:hover {text-decoration: none; font-family: 'HKGroteskBold'; color: navy; }
a:active {text-decoration: none; font-family: 'HKGroteskBold'; color: navy; }
td {color: black;
font-family: 'HKGroteskRegular';
font-weight: normal;
font-style: normal;
font-size: 100%;
text-align: left; }
th {color: black;
font-family: 'HKGroteskRegular';
font-weight: normal;
font-style: normal;
font-size: 100%;
text-align: left; }
input {color: grey;
font-family: 'HKGroteskRegular';
font-weight: normal;
font-style: normal;
font-size: 100%; }
pre {color: grey;
font-family: 'HKGroteskRegular';
font-weight: normal;
font-style: normal;
font-size: 100%; }
strong {font-family: 'HKGroteskBold'; }
img {
width: 100%;
height: auto;
}
#wrapper {background: white;
display: block;
margin: 0 auto;
margin-left: auto;
margin-right: auto;
width: 80%;}
.footer {position: static;
left: 0;
bottom: 0;
background-color: grey;
width: 100%;
color: white;
text-align: center;}
.footer a { font-family: 'HKGroteskRegular';
text-decoration: none;
padding-left:3em;
padding-right:3em;}
.footer a:link { color: white; }
.footer a:visited { color: white; }
.footer a:hover { text-decoration: underline; color: navy; }
.footer a:active { text-decoration: underline; color: fuchsia; }
.none {display: none;}
.bold {font-family: HKGroteskBold;}
.logo {
background-color: grey;
width: 100%;
height: auto;
display: flex;
justify-content: center;
align-items: center;
position: relative;}
.logo img {margin-left: 30%; margin-right: 30%;
margin-top: 7%; margin-bottom:7%;}
.column {
float: left;
}
.left {
width: 42%;
padding-left: 15%;
padding-right: 8%;
}
.right {
width: 15%;
padding-left: 5%;
padding-right: 15%;
}
/* Clear floats after the columns */
.row:after {
content: "";
display: table;
clear: both;
}
/* Centered text in Logo*/
.centered {
position: absolute;
bottom: 5%;
/* left: 50%;
transform: translate(-0%, -50%);*/
text-align: center;
color: lime;
font-size: 1.2em;
font-family: 'HKGroteskRegular';
font-weight: normal;
font-style: normal; }
/* header */
.header {
background-color: #fff;
display: block;
box-shadow: 1px 1px 4px 0 rgba(0,0,0,.1);
position: relative;
width: inherit;
color: black;
font-family: 'HKGroteskRegular';
font-weight: normal;
font-style: normal;
font-size: 100%;
padding:0px;
}
.header ul {
margin: 0;
padding: 0;
list-style: none;
overflow: hidden;
background-color: #fff;
}
.header li a {
font-family: 'HKGroteskRegular';
display: block;
padding: 1em 1em;
border-right: 1px solid #f4f4f4;
text-decoration: none;
}
.header li a:hover,
.header .menu-btn:hover {
font-family: 'HKGroteskRegular';
background-color: #f4f4f4;
text-decoration: underline; color: navy;
}
.header .logo {
display: block;
float: left;
font-size: 2em;
padding: 2em 10em;
text-decoration: none;
}
/* menu */
.header .menu {
clear: both;
max-height: 0;
transition: max-height .2s ease-out;
}
/* menu icon */
.header .menu-icon {
cursor: pointer;
display: inline-block;
float: right;
padding: 28px 20px;
position: relative;
user-select: none;
}
.header .menu-icon .navicon {
background: #333;
display: block;
height: 2px;
position: relative;
transition: background .2s ease-out;
width: 18px;
}
.header .menu-icon .navicon:before,
.header .menu-icon .navicon:after {
background: #333;
content: '';
display: block;
height: 100%;
position: absolute;
transition: all .2s ease-out;
width: 100%;
}
.header .menu-icon .navicon:before {
top: 5px;
}
.header .menu-icon .navicon:after {
top: -5px;
}
/* menu btn */
.header .menu-btn {
display: none;
}
.header .menu-btn:checked ~ .menu {
max-height: 240px;
}
.header .menu-btn:checked ~ .menu-icon .navicon {
background: transparent;
}
.header .menu-btn:checked ~ .menu-icon .navicon:before {
transform: rotate(-45deg);
}
.header .menu-btn:checked ~ .menu-icon .navicon:after {
transform: rotate(45deg);
}
.header .menu-btn:checked ~ .menu-icon:not(.steps) .navicon:before,
.header .menu-btn:checked ~ .menu-icon:not(.steps) .navicon:after {
top: 0;
}
.lightbox {
/* Default to hidden */
display: none;
/* Overlay entire screen */
position: fixed;
z-index: 999;
top: 0;
left: 0;
right: 0;
bottom: 0;
/* A bit of padding around image */
padding: 1em;
/* Translucent background */
background: rgba(0, 0, 0, 0.8);
}
/* Unhide the lightbox when it's the target */
.lightbox:target {
display: block;
}
.lightbox span {
/* Full width and height */
display: block;
width: 100%;
height: 100%;
/* Size and position background image */
background-position: center;
background-repeat: no-repeat;
background-size: contain;
}
@media (min-width: 54em) {
.header li {
float: left;
}
.header li a {
color: black;
padding: 20px 40px;
}
.header .menu {
clear: none;
float: right;
max-height: none;
}
.header .menu-icon {
display: none;
}
}
@media (max-width: 65em) {
.column {
width: 94%;
}
.centered {
display: none;
}
.left{
padding-left: 3%;
padding-right: 3%;
}
.right{
padding-left: 3%;
padding-right: 3%;
}
#wrapper{
width: 95%;
}
.footer a { font-family: 'HKGroteskRegular';
text-decoration: none;
padding-left:1em;
padding-right:1em;}
}

View file

@ -0,0 +1,14 @@
{% extends "base.html" %}
{% block title %}{{ SITENAME }} - Archives{% endblock %}
{% block content %}
<h1>Archiv von {{ SITENAME }}</h1>
<dl>
{% for article in dates %}
<dt>{{ article.locale_date }}</dt>
<dd><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></dd>
{% endfor %}
</dl>
{% endblock %}

View 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 %}
<section id="content" class="body">
<header>
<h2 class="entry-title">
<a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark"
title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></h2>
{% import 'translations.html' as translations with context %}
{{ translations.translations_for(article) }}
</header>
<footer class="post-info">
<time class="published" datetime="{{ article.date.isoformat() }}">
{{ article.locale_date }}
</time>
{% if article.modified %}
<time class="modified" datetime="{{ article.modified.isoformat() }}">
{{ article.locale_modified }}
</time>
{% endif %}
{% if article.authors %}
<address class="vcard author">
Von {% for author in article.authors %}
<a class="url fn" href="{{ SITEURL }}/{{ author.url }}">{{ author }}</a>
{% endfor %}
</address>
{% endif %}
{% if article.tags %}
<div class="tags">
Tags:
{% for tag in article.tags %}
<a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a>
{% endfor %}
</div>
{% endif %}
</footer><!-- /.post-info -->
<div class="entry-content">
{{ article.content }}
</div><!-- /.entry-content -->
</section>
{% endblock %}

View file

@ -0,0 +1,8 @@
{% extends "index.html" %}
{% block title %}{{ SITENAME }} - Articles by {{ author }}{% endblock %}
{% block content_title %}
<h2>Artikel von {{ author }}</h2>
{% endblock %}

View file

@ -0,0 +1,12 @@
{% extends "base.html" %}
{% block title %}{{ SITENAME }} - Authoren{% endblock %}
{% block content %}
<h1>Authoren bei {{ SITENAME }}</h1>
<ul>
{% for author, articles in authors|sort %}
<li><a href="{{ SITEURL }}/{{ author.url }}">{{ author }}</a> ({{ articles|count }})</li>
{% endfor %}
</ul>
{% endblock %}

View file

@ -0,0 +1,70 @@
<!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" />
<link rel="stylesheet" media="screen" href="https://freibier.cc/style/fonts/HKGrotesk_2466/hk-grotesk.css"/>
<link rel="stylesheet" href="https://freibier.cc/style/freibier.css">
{% 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 %}
</head>
<body id="index" class="home">
<div id="wrapper">
<div class="header">
<input class="menu-btn" type="checkbox" id="menu-btn" />
<label class="menu-icon" for="menu-btn"><span class="navicon"></span></label>
<ul class="menu">
<li><a href="/mhd/">Rezepte</a></li>
<li><a href="/shop/">Shop</a></li>
<li><a href="/werwirsind.html">Wer wir sind</a></li>
<li><a href="/blog/">Blog</a></li>
</ul>
</div>
<a href="../index.html">
<div class="logo">
<img src="https://freibier.cc/img/logo_freibier_cc_w.svg" alt="freibier.cc">
<div class="centered">frei gebraut frei verfügbar frei verkäuflich</div>
</div>
</a>
<div class="row">
<div class="column left">
{% block content %}
{% endblock %}
</div>
<div class="column right">
{% include 'sidebar.html' %}
</div>
</div>
<div class="footer"><p><a href="../impressum.html">Impressum</a> <a href="../datenschutz.html">Datenschutzerklärung</a></p></div>
</div>
</body>
</html>

View file

@ -0,0 +1,12 @@
{% extends "base.html" %}
{% block title %}{{ SITENAME }} - Kategorien{% endblock %}
{% block content %}
<h1>Kategorien auf {{ SITENAME }}</h1>
<ul>
{% for category, articles in categories|sort %}
<li><a href="{{ SITEURL }}/{{ category.url }}">{{ category }}</a> ({{ articles|count }})</li>
{% endfor %}
</ul>
{% endblock %}

View file

@ -0,0 +1,8 @@
{% extends "index.html" %}
{% block title %}{{ SITENAME }} - {{ category }} Kategorie {% endblock %}
{% block content_title %}
<h2>Artikel in der Kategorie {{ category }}</h2>
{% endblock %}

View file

@ -0,0 +1,25 @@
{% extends "base.html" %}
{% block content %}
<section id="content">
{% block content_title %}
<h2>Alle Beiträge</h2>
{% endblock %}
{% for article in articles_page.object_list %}
<article class="hentry">
<header> <h2 class="entry-title"><a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></h2> </header>
<footer class="post-info">
<time class="published" datetime="{{ article.date.isoformat() }}"> {{ article.locale_date }} </time>
</footer><!-- /.post-info -->
<div class="entry-content"> {{ article.summary }}
<a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">Weiterlesen...</a>
<!-- /.entry-content -->
</div>
</article>
{% endfor %}
{% if articles_page.has_other_pages() %}
{% include 'pagination.html' %}
{% endif %}
</section><!-- /#content -->
{% endblock content %}

View file

@ -0,0 +1,27 @@
{% 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>
{% 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 %}

View 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 }}">&#8647;</a>
<a href="{{ SITEURL }}/{{ articles_previous_page.url }}">&laquo;</a>
{% endif %}
Seite {{ articles_page.number }} / {{ articles_paginator.num_pages }}
{% if articles_page.has_next() %}
<a href="{{ SITEURL }}/{{ articles_next_page.url }}">&raquo;</a>
<a href="{{ SITEURL }}/{{ last_page.url }}">&#8649;</a>
{% endif %}
</p>
{% endif %}

View file

@ -0,0 +1,14 @@
{% extends "base.html" %}
{% block title %}{{ SITENAME }} - {{ period | reverse | join(' ') }} Archive {% endblock %}
{% block content %}
<h1>Archive für {{ 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 %}

View file

@ -0,0 +1,13 @@
<h4>Blog</h4>
<ul>
<li><a href="https://freibier.cc/blog">Index</a></li>
<li><a href="https://freibier.cc/blog/tags.html">Tags</a></li>
<li><a href="https://freibier.cc/blog/authors.html">Autoren</a></li>
</ul>
<h4>Tags</h4>
<ul>
{% for tag, articles in tags|sort %}
<li><a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a> ({{ articles|count }})</li>
{% endfor %}
</ul>

View file

@ -0,0 +1,7 @@
{% extends "index.html" %}
{% block title %}{{ SITENAME }} - {{ tag }} tag{% endblock %}
{% block content_title %}
<h2>Artikel mit Tag "{{ tag }}"</h2>
{% endblock %}

View file

@ -0,0 +1,12 @@
{% extends "base.html" %}
{% block title %}{{ SITENAME }} - Tags{% endblock %}
{% block content %}
<h1>Tags für {{ SITENAME }}</h1>
<ul>
{% for tag, articles in tags|sort %}
<li><a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a> ({{ articles|count }})</li>
{% endfor %}
</ul>
{% endblock %}

View 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 %}

View file

@ -0,0 +1,14 @@
{% extends "base.html" %}
{% block title %}{{ SITENAME }} - Archives{% endblock %}
{% block content %}
<h1>Archives for {{ SITENAME }}</h1>
<dl>
{% for article in dates %}
<dt>{{ article.locale_date }}</dt>
<dd><a href="{{ SITEURL }}/{{ article.url }}">{{ article.title }}</a></dd>
{% endfor %}
</dl>
{% endblock %}

View file

@ -0,0 +1,67 @@
{% 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 %}
<section id="content" class="body">
<header>
<h2 class="entry-title">
<a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark"
title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></h2>
{% import 'translations.html' as translations with context %}
{{ translations.translations_for(article) }}
</header>
<footer class="post-info">
<time class="published" datetime="{{ article.date.isoformat() }}">
{{ article.locale_date }}
</time>
{% if article.modified %}
<time class="modified" datetime="{{ article.modified.isoformat() }}">
{{ article.locale_modified }}
</time>
{% endif %}
{% if article.authors %}
<address class="vcard author">
By {% for author in article.authors %}
<a class="url fn" href="{{ SITEURL }}/{{ author.url }}">{{ author }}</a>
{% endfor %}
</address>
{% endif %}
{% if article.category %}
<div class="category">
Category: <a href="{{ SITEURL }}/{{ article.category.url }}">{{ article.category }}</a>
</div>
{% endif %}
{% if article.tags %}
<div class="tags">
Tags:
{% for tag in article.tags %}
<a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a>
{% endfor %}
</div>
{% endif %}
</footer><!-- /.post-info -->
<div class="entry-content">
{{ article.content }}
</div><!-- /.entry-content -->
</section>
{% endblock %}

View file

@ -0,0 +1,8 @@
{% extends "index.html" %}
{% block title %}{{ SITENAME }} - Articles by {{ author }}{% endblock %}
{% block content_title %}
<h2>Articles by {{ author }}</h2>
{% endblock %}

View 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 %}

63
themes/simple/base.html Normal file
View file

@ -0,0 +1,63 @@
<!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" />
{% 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 %}
</head>
<body id="index" class="home">
<header id="banner" class="body">
<h1><a href="{{ SITEURL }}/">{{ SITENAME }}{% if SITESUBTITLE %} <strong>{{ SITESUBTITLE }}</strong>{% endif %}</a></h1>
</header><!-- /#banner -->
<nav id="menu"><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><!-- /#menu -->
{% block content %}
{% endblock %}
<footer id="contentinfo" class="body">
<address id="about" class="vcard body">
Proudly powered by <a href="https://getpelican.com/">Pelican</a>,
which takes great advantage of <a href="https://www.python.org/">Python</a>.
</address><!-- /#about -->
</footer><!-- /#contentinfo -->
</body>
</html>

View file

@ -0,0 +1,12 @@
{% extends "base.html" %}
{% block title %}{{ SITENAME }} - Categories{% endblock %}
{% block content %}
<h1>Categories on {{ SITENAME }}</h1>
<ul>
{% for category, articles in categories|sort %}
<li><a href="{{ SITEURL }}/{{ category.url }}">{{ category }}</a> ({{ articles|count }})</li>
{% endfor %}
</ul>
{% endblock %}

View file

@ -0,0 +1,8 @@
{% extends "index.html" %}
{% block title %}{{ SITENAME }} - {{ category }} category{% endblock %}
{% block content_title %}
<h2>Articles in the {{ category }} category</h2>
{% endblock %}

View 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 %}

28
themes/simple/index.html Normal file
View file

@ -0,0 +1,28 @@
{% extends "base.html" %}
{% block content %}
<section id="content">
{% block content_title %}
<h2>All articles</h2>
{% endblock %}
<ol id="post-list">
{% for article in articles_page.object_list %}
<li><article class="hentry">
<header> <h2 class="entry-title"><a href="{{ SITEURL }}/{{ article.url }}" rel="bookmark" title="Permalink to {{ article.title|striptags }}">{{ article.title }}</a></h2> </header>
<footer class="post-info">
<time class="published" datetime="{{ article.date.isoformat() }}"> {{ article.locale_date }} </time>
<address class="vcard author">By
{% for author in article.authors %}
<a class="url fn" href="{{ SITEURL }}/{{ author.url }}">{{ author }}</a>
{% endfor %}
</address>
</footer><!-- /.post-info -->
<div class="entry-content"> {{ article.summary }} </div><!-- /.entry-content -->
</article></li>
{% endfor %}
</ol><!-- /#posts-list -->
{% if articles_page.has_other_pages() %}
{% include 'pagination.html' %}
{% endif %}
</section><!-- /#content -->
{% endblock content %}

27
themes/simple/page.html Normal file
View file

@ -0,0 +1,27 @@
{% 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>
{% 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 %}

View 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 }}">&#8647;</a>
<a href="{{ SITEURL }}/{{ articles_previous_page.url }}">&laquo;</a>
{% endif %}
Page {{ articles_page.number }} / {{ articles_paginator.num_pages }}
{% if articles_page.has_next() %}
<a href="{{ SITEURL }}/{{ articles_next_page.url }}">&raquo;</a>
<a href="{{ SITEURL }}/{{ last_page.url }}">&#8649;</a>
{% endif %}
</p>
{% endif %}

View 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/tag.html Normal file
View file

@ -0,0 +1,7 @@
{% extends "index.html" %}
{% block title %}{{ SITENAME }} - {{ tag }} tag{% endblock %}
{% block content_title %}
<h2>Articles tagged with {{ tag }}</h2>
{% endblock %}

12
themes/simple/tags.html Normal file
View file

@ -0,0 +1,12 @@
{% extends "base.html" %}
{% block title %}{{ SITENAME }} - Tags{% endblock %}
{% block content %}
<h1>Tags for {{ SITENAME }}</h1>
<ul>
{% for tag, articles in tags|sort %}
<li><a href="{{ SITEURL }}/{{ tag.url }}">{{ tag }}</a> ({{ articles|count }})</li>
{% endfor %}
</ul>
{% endblock %}

View 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 %}