forked from reudnetz/website
Compare commits
No commits in common. "5b10ecde65424eba81ec2fdc1c11c131a300a8e7" and "4ceb340595ff945c768d420c9b345ae1486ff94b" have entirely different histories.
5b10ecde65
...
4ceb340595
11 changed files with 235 additions and 410 deletions
|
@ -1,6 +0,0 @@
|
||||||
+++
|
|
||||||
title = "Was geht?"
|
|
||||||
weight = 9
|
|
||||||
template = "blog.html"
|
|
||||||
+++
|
|
||||||
# Die neusten Neuigkeiten
|
|
|
@ -1,21 +0,0 @@
|
||||||
+++
|
|
||||||
title = "Geheime Interna #1"
|
|
||||||
date = "2023-11-18"
|
|
||||||
+++
|
|
||||||
Die meisten Entscheidungen trifft das Reudnetz in einem mehr oder weniger unorgansierten Plenum.
|
|
||||||
Seit je her, beziehungsweise seit dem wir angefangen haben mitzuschreiben, was wir beschließen, veröffentlichen wir
|
|
||||||
die Protokolle, welche dabei entstehen.
|
|
||||||
Aus Bequemlichkeit landete bisher alles in einem [Ordner im Git.](https://git.reudnetz.org/reudnetz/public-wiki/src/branch/master/menschenzeugs/protokolle). Dort kann es öffentlich eingesehen werden und wird sogar manchmal gelesen.
|
|
||||||
|
|
||||||
Nun beschäftigt uns allerdings die Frage, ob wir diese Praxis beibehalten wollen.
|
|
||||||
Denn es gilt: "the internet never forgets" – was einmal veröffentlicht ist, emazipiert sich von uns wird in caches und backups weiterleben, selbst wenn wir einmal entscheiden sollten die Quelle bei uns zu löschen oder zu verändern.
|
|
||||||
Da wir auch Details zu neuen und alten Anschlüssen besprechen, müssen wir aufpassen, wie wir die Dinge aufschreiben,
|
|
||||||
um nicht datenschutzrelevante Informationen zu veröffentlichen.
|
|
||||||
Besonders dieses Risiko nährt die Frage nach den Sinnhaftigkeit dieser kompletten Offenheit.
|
|
||||||
|
|
||||||
Gleichzeitig ist uns klar, was für ein starkes Bekenntnis an Transparenz es darstellt, die Ergebnisse unserer Treffen öffenlich zu halten.
|
|
||||||
Aus dem Unstand, das wir öffentliche Infrastruktur betreiben, lässt sich unter Umständen sogar ein Anspruch für diese Offenheit ableiten: Öffentliche Infrastruktur muss auch öffentlich verwaltet werden.
|
|
||||||
|
|
||||||
Aber auch die Frage nach dem Nutzen der Protokolle ist nicht abschließend beantwortet. Die Argumentation, das die Protokolle für Auszenstehende wenig informativ sind, da sie oft wenig ausführlich sind, trifft durchaus zu. Zu unserer Überraschung scheinen diese Protokolle aber doch gelegentlich von Menschen gelesen zu werden, die sich für das Reudnetz Interessieren.
|
|
||||||
Besser könnten Blogposts wie dieser sein, die ausführlicher über Themen berichten, die uns gerade Beschäftigen.
|
|
||||||
Sie zu schreiben ist aber aufwendig und deckt stets nur einen Teil unserer Arbeit ab.
|
|
|
@ -1,63 +0,0 @@
|
||||||
+++
|
|
||||||
title = "Incident 07.02.2024"
|
|
||||||
date = "2024-02-07"
|
|
||||||
+++
|
|
||||||
|
|
||||||
In der Nacht von Dienstag auf Mittwoch (06.02.24 - 07.02.24) ist in der Wurzner Straße der Strom ausgefallen und hat uns eine ungeplante Downtime geschenkt.
|
|
||||||
|
|
||||||
Unser Kernnetz, sowie die Kundenanschlusse, sind nach dem Stromausfall von selbst wieder hochgefahren.
|
|
||||||
|
|
||||||
Allerdings mussten wir bei beiden Hosting-Servern manuell eingreifen und bis in die Mittagsstunden des Folgetages Entstörungen durchführen.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Verlauf
|
|
||||||
|
|
||||||
* 2024.02.06 23:30 CET: Stromausfall
|
|
||||||
* gesamter Ausfall unserer Infrastruktur
|
|
||||||
* 2024.02.07 00:20 CET: Stromausfall beendet
|
|
||||||
* Kundenanschlüsse stehen wieder zur Verfügung
|
|
||||||
* 2024.02.07 11:00 CET: _hyper01_ und _sol_ unlocked
|
|
||||||
* _hyper01_: Kunden VMs wieder online
|
|
||||||
* _sol_: bootet ohne Netzwerkkonnektivität - Reverse-Proxies und interne VMs weiterhin offline
|
|
||||||
* 2024.02.07 14:30 CET: _sol_ entstört
|
|
||||||
* Reverse-Proxies und interne VMs wieder Verfügbar
|
|
||||||
|
|
||||||
Seit 2024.02.07 14:30 CET ist das Reudnetz wieder uneingeschränkt online.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Entstörung _sol_
|
|
||||||
|
|
||||||
_sol_ ist nach dem Freischalten der `full-disk-encryption` ohne Netzwerkkonnektivität gebootet.
|
|
||||||
Eine fehlkonfigurierte Boot-Partiton hat einen veralteten Linux-Kernel gebootet für den das OS keine Kernel-Module mehr bereitgestellt hat.
|
|
||||||
|
|
||||||
Durch die fehlenden Module konnte _sol_ seinen Netzwerk-Stack nicht konfigurieren da hierfür (unteranderem) das `bonding` Modul für 802.3ad (LACP) benötigt wird.
|
|
||||||
|
|
||||||
_sol_ konnte über das IPMI entstört werden.
|
|
||||||
|
|
||||||
Der Grund für die defekte Boot-Partiton war eine Wartung im Juni 2023.
|
|
||||||
Beim Austausch der HDDs in _sol_ gegen SSDs wurde die Bootpartition per `dd` kopiert.
|
|
||||||
Durch die gleichen FS/UU-IDs hat der Kernel das /boot auf der SSD gemountet, welches nicht in der Firmware als Boot-Device hinterlegt war.
|
|
||||||
Somit haben sich das Boot-Device und die eigentliche /boot-Partition immer weiter voneinander entfernt.
|
|
||||||
|
|
||||||
## Full-Disk-Encryption
|
|
||||||
|
|
||||||
Die Festplattenverschlüsselung von _hyper01_ und _sol_ musste manuell durch einen admin freigeschaltet werden.
|
|
||||||
|
|
||||||
Das ist 11 Stunden nach Ende des Stromausfalls passiert.
|
|
||||||
|
|
||||||
## PDU issues _hyper01_
|
|
||||||
|
|
||||||
Aufgrund von Netzteilproblemen ist _hyper01_ nicht automatisch gestartet.
|
|
||||||
Weder die Betätigung des `power-buttons`, noch das IPMI konnten den Server starten.
|
|
||||||
|
|
||||||
|
|
||||||
Aus Energieeffiziengründen wird _hyper01_ nur mit einem Netzteil betrieben.
|
|
||||||
Der Wechsel auf das Ersatznetzteil hat dem Server dann zum Starten verholfen.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Reflektion
|
|
||||||
|
|
||||||
In den folgenden Pläna werden wir erarbeiten an welchen Stellen wir Verbessrungen erzielen können um diese Form von Ausfall zu verhindern.
|
|
|
@ -1,4 +0,0 @@
|
||||||
+++
|
|
||||||
title = "Neuigkeiten"
|
|
||||||
sort_by = "date"
|
|
||||||
+++
|
|
|
@ -1,16 +0,0 @@
|
||||||
+++
|
|
||||||
title = "Überarbeitung unserer Buchhaltung"
|
|
||||||
date = "2023-03-01"
|
|
||||||
+++
|
|
||||||
Wir sind gerade dabei eine neue Buchhaltungsperson einzuarbeiten.
|
|
||||||
In diesem Zuge ändern und verbessern wir unsere bisherige Buchhaltung.
|
|
||||||
|
|
||||||
**Wundert euch also nicht, wenn ihr:**
|
|
||||||
* Rechnungen bekommt
|
|
||||||
* Rechnungen mehrfach bekommt
|
|
||||||
|
|
||||||
Sollten Zahlungen ausstehen, werden wir euch nochmal explizit daran erinnern.
|
|
||||||
|
|
||||||
Liebe Grüße
|
|
||||||
|
|
||||||
Euer Reudnetz.
|
|
|
@ -1,9 +0,0 @@
|
||||||
+++
|
|
||||||
title = "Einen Blog für die Webseite"
|
|
||||||
date = "2023-10-27"
|
|
||||||
+++
|
|
||||||
Immer mehr machen sich Wunsch und Notwendigkeit breit, auch mal etwas aktuelles über die Webseite zu verbreiten.
|
|
||||||
Nun soll hier Platz sein, für Geschichten und Einblicke in unsere Arbeit, Störungsmeldungen und Ausfalls-Forensik
|
|
||||||
oder auch einfach ein Paar nette Worte über Dinge die uns beschäftigen.
|
|
||||||
|
|
||||||
Viel Vergnügen damit.
|
|
|
@ -1,48 +0,0 @@
|
||||||
+++
|
|
||||||
title = "Vegane Käse-Hack-Lauchsuppe"
|
|
||||||
+++
|
|
||||||
# Vegane Käse-Hack-Lauchsuppe
|
|
||||||
Falls das mit dem Internet mal wieder alles nervt, ist es eine gute Idee etwas zu kochen.
|
|
||||||
|
|
||||||
## Das Rezept
|
|
||||||
Genau wie bei der [Anleitung zum Einrichten von Openwrt](@/how-to/openwrt-router.md) ist ein Rezept ein Modell der
|
|
||||||
Realität und entspricht normalerweise nicht dem was wirklich ist.
|
|
||||||
Es sollte stets als Wegweiser durch den Möglichkeitsraum verstanden werden.
|
|
||||||
|
|
||||||
### Zutaten
|
|
||||||
|||
|
|
||||||
| ---: | ---
|
|
||||||
| 3 Stangen | Lauch
|
|
||||||
| 300g | Sojagranulat
|
|
||||||
| 1L | Soja/Hafersahne
|
|
||||||
| 3 | Zwiebeln
|
|
||||||
| 6 Zehen | Knoblauch
|
|
||||||
| 6EL | Hefeflocken
|
|
||||||
|1 Bund | Petersilie
|
|
||||||
| | Genüsebrühe
|
|
||||||
| | Sojasauce
|
|
||||||
| | Öl
|
|
||||||
| | Salz
|
|
||||||
| | Pfeffer
|
|
||||||
| | Kümmel
|
|
||||||
| | Edelsüßes Paprika
|
|
||||||
|
|
||||||
### Umsetzung
|
|
||||||
Lauch und Zwiebeln kleinschneiden.
|
|
||||||
Zwiebeln in **reichlich Öl** anbraten, denn wie häufig bei veganem Essen, enthält hier nichts Fett außer dem Öl. Sojagranulat dazugeben auch kurz anbraten.
|
|
||||||
Hefeflocken dazu und ebenfalls kurz mitbraten. Lauch dazu und nach kurzer Zeit mit Soja/Hafergetränk ablöschen.
|
|
||||||
|
|
||||||
Mindestens 10min köcheln lassen.
|
|
||||||
|
|
||||||
Währenddessen Knoblauch und Petersilie zerkleinern.
|
|
||||||
Die Petersilie dient später als Garnitur, der Knoblauch kann sofort in die Suppe.
|
|
||||||
Abschmecken mit Sojasauce, Hefeflocken, Gemüsebrühe und den Gewürzen.
|
|
||||||
Servieren mit der Petersilie.
|
|
||||||
|
|
||||||
Have fun.
|
|
||||||
|
|
||||||
### Anmerkungen
|
|
||||||
|
|
||||||
- Soja/Hafersahne ist teuer und kann auch durch entsprechende Pflanzenmilch und Stärke ersetzt werden. #kuefastyle
|
|
||||||
|
|
||||||
- Soja enthält Sojalecithin, Sonneblumenöl enthält auch Sonnenblumenlecithine. Beides kann dabei helfen, das sich Öl und Wasser besser vermischen lassen. Um mehr Fett schön in der Suppe unterzubringen, kann es sich lohnen, beides zu verwenden.
|
|
10
content/jobs.md
Normal file
10
content/jobs.md
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
+++
|
||||||
|
title = "Jobs"
|
||||||
|
weight = 9
|
||||||
|
+++
|
||||||
|
|
||||||
|
# Jobausschreibungen des Reudnetzes
|
||||||
|
Aktuell haben wir keine konkreten Stellen anzubieten.
|
||||||
|
|
||||||
|
Falls du trotzdem eine Initiale Bewerbung schreiben möchstest:
|
||||||
|
Schick Deine Bewerbung mit den üblichen Unterlagen an mail reudnetz org
|
|
@ -1,221 +1,220 @@
|
||||||
/*
|
/*
|
||||||
* Web Fonts from fontspring.com
|
* Web Fonts from fontspring.com
|
||||||
*
|
*
|
||||||
* All OpenType features and all extended glyphs have been removed.
|
* All OpenType features and all extended glyphs have been removed.
|
||||||
* Fully installable fonts can be purchased at http://www.fontspring.com
|
* Fully installable fonts can be purchased at http://www.fontspring.com
|
||||||
*
|
*
|
||||||
* The fonts included in this stylesheet are subject to the End User License you purchased
|
* The fonts included in this stylesheet are subject to the End User License you purchased
|
||||||
* from Fontspring. The fonts are protected under domestic and international trademark and
|
* from Fontspring. The fonts are protected under domestic and international trademark and
|
||||||
* copyright law. You are prohibited from modifying, reverse engineering, duplicating, or
|
* copyright law. You are prohibited from modifying, reverse engineering, duplicating, or
|
||||||
* distributing this font software.
|
* distributing this font software.
|
||||||
*
|
*
|
||||||
* (c) 2010-2015 Fontspring
|
* (c) 2010-2015 Fontspring
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* The fonts included are copyrighted by the vendor listed below.
|
* The fonts included are copyrighted by the vendor listed below.
|
||||||
*
|
*
|
||||||
* Vendor: Fontfabric
|
* Vendor: Fontfabric
|
||||||
* License URL: http://www.fontspring.com/licenses/fontfabric/webfont
|
* License URL: http://www.fontspring.com/licenses/fontfabric/webfont
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'intro_rust_gbase_2_line';
|
font-family: 'intro_rust_gbase_2_line';
|
||||||
src: url('introrustg-base2line-webfont.eot');
|
src: url('introrustg-base2line-webfont.eot');
|
||||||
src: url('introrustg-base2line-webfont.eot?#iefix') format('embedded-opentype'),
|
src: url('introrustg-base2line-webfont.eot?#iefix') format('embedded-opentype'),
|
||||||
url('introrustg-base2line-webfont.woff2') format('woff2'),
|
url('introrustg-base2line-webfont.woff2') format('woff2'),
|
||||||
url('introrustg-base2line-webfont.woff') format('woff'),
|
url('introrustg-base2line-webfont.woff') format('woff'),
|
||||||
url('introrustg-base2line-webfont.ttf') format('truetype'),
|
url('introrustg-base2line-webfont.ttf') format('truetype'),
|
||||||
url('introrustg-base2line-webfont.svg#intro_rust_gbase_2_line') format('svg');
|
url('introrustg-base2line-webfont.svg#intro_rust_gbase_2_line') format('svg');
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'intro_script_rh2_base';
|
font-family: 'intro_script_rh2_base';
|
||||||
src: url('introscriptr-h2base-webfont.eot');
|
src: url('introscriptr-h2base-webfont.eot');
|
||||||
src: url('introscriptr-h2base-webfont.eot?#iefix') format('embedded-opentype'),
|
src: url('introscriptr-h2base-webfont.eot?#iefix') format('embedded-opentype'),
|
||||||
url('introscriptr-h2base-webfont.woff2') format('woff2'),
|
url('introscriptr-h2base-webfont.woff2') format('woff2'),
|
||||||
url('introscriptr-h2base-webfont.woff') format('woff'),
|
url('introscriptr-h2base-webfont.woff') format('woff'),
|
||||||
url('introscriptr-h2base-webfont.ttf') format('truetype'),
|
url('introscriptr-h2base-webfont.ttf') format('truetype'),
|
||||||
url('introscriptr-h2base-webfont.svg#intro_script_rh2_base') format('svg');
|
url('introscriptr-h2base-webfont.svg#intro_script_rh2_base') format('svg');
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'intro_head_rbase';
|
font-family: 'intro_head_rbase';
|
||||||
src: url('introheadr-base-webfont.eot');
|
src: url('introheadr-base-webfont.eot');
|
||||||
src: url('introheadr-base-webfont.eot?#iefix') format('embedded-opentype'),
|
src: url('introheadr-base-webfont.eot?#iefix') format('embedded-opentype'),
|
||||||
url('introheadr-base-webfont.woff2') format('woff2'),
|
url('introheadr-base-webfont.woff2') format('woff2'),
|
||||||
url('introheadr-base-webfont.woff') format('woff'),
|
url('introheadr-base-webfont.woff') format('woff'),
|
||||||
url('introheadr-base-webfont.ttf') format('truetype'),
|
url('introheadr-base-webfont.ttf') format('truetype'),
|
||||||
url('introheadr-base-webfont.svg#intro_head_rbase') format('svg');
|
url('introheadr-base-webfont.svg#intro_head_rbase') format('svg');
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
background-image:url(linien1.svg);
|
background-image:url(linien1.svg);
|
||||||
background-repeat:no-repeat;
|
background-repeat:no-repeat;
|
||||||
background-size:100% auto;
|
background-size:contain;
|
||||||
background-position:center;
|
background-position:center;
|
||||||
background-attachment:fixed;
|
background-attachment:fixed;
|
||||||
background-color:#3F3836;
|
background-color:#3F3836;
|
||||||
color:#fff;
|
color:#fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
a:link, a:visited {
|
a:link, a:visited {
|
||||||
color:#fff;
|
color:#fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
a:hover, a:active,
|
a:hover, a:active,
|
||||||
a:visited:hover, a:visited:active {
|
a:visited:hover, a:visited:active {
|
||||||
background-color:#000;
|
background-color:#000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.legal {
|
.legal {
|
||||||
text-align:right;
|
text-align:right;
|
||||||
font-size:0.8em;
|
font-size:0.8em;
|
||||||
text-transform:uppercase;
|
text-transform:uppercase;
|
||||||
font-family:'intro_head_rbase',sans-serif;
|
font-family:'intro_head_rbase',sans-serif;
|
||||||
letter-spacing:1px;
|
letter-spacing:1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.legal a:link, .legal a:visited,
|
.legal a:link, .legal a:visited,
|
||||||
.nav a:link, .nav a:visited {
|
.nav a:link, .nav a:visited {
|
||||||
text-decoration:none;
|
text-decoration:none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.head h1 {
|
.head h1 {
|
||||||
font-family:'intro_rust_gbase_2_line',sans-serif;
|
font-family:'intro_rust_gbase_2_line',sans-serif;
|
||||||
font-weight:normal;
|
font-weight:normal;
|
||||||
font-size:5em;
|
font-size:5em;
|
||||||
margin:0;
|
margin:0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.head h2 {
|
.head h2 {
|
||||||
font-family:'intro_script_rh2_base',sans-serif;
|
font-family:'intro_script_rh2_base',sans-serif;
|
||||||
font-weight:normal;
|
font-weight:normal;
|
||||||
font-size:2.5em;
|
font-size:2.5em;
|
||||||
padding-top:1.1em;
|
padding-top:1.1em;
|
||||||
text-align:right;
|
text-align:right;
|
||||||
margin:0;
|
margin:0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav ul, .nav ul li {
|
.nav ul, .nav ul li {
|
||||||
margin:0;
|
margin:0;
|
||||||
padding:0;
|
padding:0;
|
||||||
list-style-type:none;
|
list-style-type:none;
|
||||||
display:inline;
|
display:inline;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav ul li a:link, .nav ul li a:visited {
|
.nav ul li a:link, .nav ul li a:visited {
|
||||||
display:block;
|
display:block;
|
||||||
float:left;
|
float:left;
|
||||||
background-color:#fff;
|
background-color:#fff;
|
||||||
color:#3F3836;
|
color:#3F3836;
|
||||||
width:10%;
|
width:10%;
|
||||||
margin-right:2%;
|
margin-right:2%;
|
||||||
font-size:1.3em;
|
font-size:1.3em;
|
||||||
text-transform:uppercase;
|
text-transform:uppercase;
|
||||||
font-family:'intro_head_rbase',sans-serif;
|
font-family:'intro_head_rbase',sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav ul li.last a:link, .nav ul li.last a:visited {
|
.nav ul li.last a:link, .nav ul li.last a:visited {
|
||||||
margin-right:0;
|
margin-right:0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.nav ul li a:hover, .nav ul li a:visited:hover,
|
.nav ul li a:hover, .nav ul li a:visited:hover,
|
||||||
.nav ul li.current a:link, .nav ul li.current a:visited {
|
.nav ul li.current a:link, .nav ul li.current a:visited {
|
||||||
background-color:#000;
|
background-color:#000;
|
||||||
color:#fff;
|
color:#fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.content {
|
.content {
|
||||||
font-family:'intro_head_rbase',sans-serif;
|
font-family:'intro_head_rbase',sans-serif;
|
||||||
margin-top:2em;
|
margin-top:2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.content h1 {
|
.content h1 {
|
||||||
text-transform:uppercase;
|
text-transform:uppercase;
|
||||||
margin-top:0;
|
margin-top:0;
|
||||||
font-weight:normal;
|
font-weight:normal;
|
||||||
font-size:2em;
|
font-size:2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.content p, .content li, .content td {
|
.content p, .content li, .content td {
|
||||||
font-size:1.3rem;
|
font-size:1.3em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.margin {
|
||||||
|
font-size:85%;
|
||||||
.margin {
|
}
|
||||||
font-size:85%;
|
|
||||||
}
|
.margin h3{
|
||||||
|
background-color:#000;
|
||||||
.margin h3{
|
padding:0.5em;
|
||||||
background-color:#000;
|
margin-top:0;
|
||||||
padding:0.5em;
|
}
|
||||||
margin-top:0;
|
|
||||||
}
|
.ifl {
|
||||||
|
float:left;
|
||||||
.ifl {
|
margin:0.5em 0.5em 0.5em 0;
|
||||||
float:left;
|
}
|
||||||
margin:0.5em 0.5em 0.5em 0;
|
|
||||||
}
|
.ifr {
|
||||||
|
float:right;
|
||||||
.ifr {
|
margin:0.5em 0 0.5em 0.5em;
|
||||||
float:right;
|
}
|
||||||
margin:0.5em 0 0.5em 0.5em;
|
|
||||||
}
|
.adress ul {
|
||||||
|
list-style-type:none;
|
||||||
.adress ul {
|
}
|
||||||
list-style-type:none;
|
|
||||||
}
|
pre {
|
||||||
|
padding: 1em;
|
||||||
pre {
|
background-color: #008b8b70;
|
||||||
padding: 1em;
|
border-radius: 4px;
|
||||||
background-color: #008b8b70;
|
white-space: pre-wrap;
|
||||||
border-radius: 4px;
|
}
|
||||||
white-space: pre-wrap;
|
|
||||||
}
|
p code {
|
||||||
|
vertical-align: baseline;
|
||||||
p code {
|
background-color: #008b8b70;
|
||||||
vertical-align: baseline;
|
border-radius: 4px;
|
||||||
background-color: #008b8b70;
|
padding: 1px 4px;
|
||||||
border-radius: 4px;
|
}
|
||||||
padding: 1px 4px;
|
|
||||||
}
|
@media screen and (max-width:48em) {
|
||||||
|
|
||||||
@media screen and (max-width:48em) {
|
.legal {
|
||||||
|
text-align:center;
|
||||||
.legal {
|
margin-top:1em;
|
||||||
text-align:center;
|
}
|
||||||
margin-top:1em;
|
|
||||||
}
|
.head h1 {
|
||||||
|
font-size:2.5em;
|
||||||
.head h1 {
|
text-align:center;
|
||||||
font-size:2.5em;
|
padding:0;
|
||||||
text-align:center;
|
}
|
||||||
padding:0;
|
|
||||||
}
|
.head h2 {
|
||||||
|
font-size:1.5em;
|
||||||
.head h2 {
|
text-align:center;
|
||||||
font-size:1.5em;
|
padding:0;
|
||||||
text-align:center;
|
}
|
||||||
padding:0;
|
|
||||||
}
|
.nav ul li a:link, .nav ul li a:visited {
|
||||||
|
width:100%;
|
||||||
.nav ul li a:link, .nav ul li a:visited {
|
margin:0.2em 0;
|
||||||
width:100%;
|
text-align:center;
|
||||||
margin:0.2em 0;
|
}
|
||||||
text-align:center;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
{% extends "page.html" %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
{{ page.content | safe }}
|
|
||||||
{% set posts = get_section(path="blogposts/_index.md") %}
|
|
||||||
|
|
||||||
{% for post in posts.pages %}
|
|
||||||
<h2 class="fg8" style="margin-bottom: 0px;"><a
|
|
||||||
href="{{ get_url(path=post.path) }}" title="{{ post.title }}">{{ post.title }}</a></h2>
|
|
||||||
<p class="fg4" style="margin-bottom: 0px;margin-top: 0px;">{{ post.date }}</p>
|
|
||||||
<div class="fg12">
|
|
||||||
{% if post.summary %}
|
|
||||||
{{ post.summary | safe }}
|
|
||||||
{% else %}
|
|
||||||
{{ post.content | safe }}
|
|
||||||
{% endif %}
|
|
||||||
<hr style="margin-bottom: 1.5em">
|
|
||||||
</div>
|
|
||||||
{% endfor %}
|
|
||||||
{% endblock content %}
|
|
|
@ -1,7 +1,10 @@
|
||||||
{% extends "page.html" %}
|
{% extends "index.html" %}
|
||||||
|
|
||||||
|
{% block title %}
|
||||||
|
<title>{{ page.title }} - {{ config.title }}</title>
|
||||||
|
{% endblock title %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{{ page.content | safe }}
|
|
||||||
{% set anleitungen = get_section(path="how-to/_index.md") %}
|
{% set anleitungen = get_section(path="how-to/_index.md") %}
|
||||||
{% for page in anleitungen.pages %}
|
{% for page in anleitungen.pages %}
|
||||||
<li>
|
<li>
|
||||||
|
|
Loading…
Reference in a new issue