Marcos Blog

Wieder da und der Blog kann mehr

· 3 Min. Lesezeit

Kurzes Update von mir

Ich bin wieder da und schreibe weiter :) Am Donnerstag hab ich die Müdigkeit schon stark gemerkt, aber ab Freitag hats mich dann etwas ins Bett verfrachtet. Samstag konnte ich bisschen Energie aufbringen eine wasserfeste Hose und eine Regenjacke zu besorgen und Sonntag hab ich mich weiter ausgeruht. Ich bin zwar immer noch sehr müde und nicht fit, aber ich muss in den Sprachkurs, sonst darf ich nicht an der Prüfung teilnehmen. Trotzdem konnte ich ein wenig weiter an meinen Idee und den von euch gewollten Features arbeiten. Tatsächlich hab ichs geschafft, es gibt eine Kommentarfunktion und das ohne JavaScript. Mehr zum Blog und den technischen Aspekten findet ihr weiter unten

Die Grundidee

Der Ausgangspunkt war simpel: Hugo baut aus Markdown-Dateien statisches HTML. Kein Server-seitiges Rendering zur Laufzeit, keine Datenbank, keine Node-Modules-Ordner mit hundert Megabyte Abhängigkeiten. Nur ein Binary, das beim Build läuft, und danach reine HTML/CSS-Dateien, die überall gehostet werden können.

Das Theme habe ich komplett selbst geschrieben, Layout für Layout, kein bestehendes Theme als Vorlage. Farblich orientiere ich mich am Nord-Farbschema: gedämpfte, kühle Töne, die auch bei längerem Lesen angenehm bleiben.

Was der Blog kann

Struktur und Navigation

Jeder Post ist ein eigenes Page Bundle, heißt Text und Bilder liegen zusammen in einem Ordner. Bilder werden automatisch skaliert, bevor sie ausgeliefert werden. Dazu kommen:

Lesbarkeit

Lange Beiträge bekommen automatisch ein Inhaltsverzeichnis, sobald sie mehr als drei Überschriften haben, so wie dieser hier. Dazu eine Lesezeit-Schätzung, damit du weißt, worauf du dich einlässt.

Das Kommentarsystem

Das war der aufwendigste Teil. Ich wollte Kommentare, aber keine Drittanbieter-Skripte wie Disqus oder Giscus einbinden, die JavaScript nachladen und Nutzerdaten irgendwo hinschicken, wo ich keine Kontrolle drüber habe.

Die Lösung: ein kleiner, selbst geschriebener Dienst in Go, der neben dem Blog läuft. Wenn du einen Kommentar abschickst, passiert Folgendes:

  1. Das Formular sendet die Daten per normalem HTML-POST, kein JavaScript beteiligt
  2. Der Go-Dienst prüft automatisiert auf Spam
  3. Der Kommentar wird als JSON-Datei gespeichert
  4. Der Dienst baut die Seite automatisch neu
  5. Du landest zurück auf dem Beitrag, dein Kommentar ist sichtbar

Man kann auch auf Kommentare antworten, beliebig tief verschachtelt, nicht nur eine Ebene. Der komplette Kommentarbereich lässt sich einklappen, ebenso das Antwortformular pro Kommentar.

Rechtliches

Ein Blog braucht ein Impressum und eine Datenschutzerklärung, auch wenn er rein privat betrieben wird. Beide Seiten sind bei mir Markdown-Dateien, die über ein gemeinsames Layout gerendert werden, inklusive automatischem Inhaltsverzeichnis, weil beide Texte recht lang sind.

Die Inhalte hier auf dem Blog stehen unter CC BY-ND 4.0: Weitergabe mit Namensnennung ist erlaubt, Veränderungen nicht.

Deployment

Der ganze Blog liegt auf meinem privaten Rechner. Zum Veröffentlichen synce ich das Repo per rsync auf den Server, baue dort mit Hugo, und das Ergebnis landet direkt im Docroot, den Caddy ausliefert. Kommentare lösen automatisch einen Rebuild aus, der Go-Dienst läuft als eigener systemd-Service.

Getestet habe ich alles zuerst auf einer separaten Testdomain, komplett getrennt von der eigentlichen Seite. Erst als das sauber lief, ging’s auf die echte Domain.

Wenn du magst, probier die Kommentarfunktion gleich aus, ich lese sie mir durch ^^

#blog-features

K
Konsuli

Oha, Kommentare!

Z
Zeitreisender

Wann neuer Content

2 Antworten anzeigen
C
Chemiker

es wird neuen content gegeben haben, irgendwann(tm)

A
Admin

Jetzt gibt es neuen Content ^^

M
Moin

Moin?

1 Antwort anzeigen
A
Admin

Moin

E
Elliot

Wieder tot? Rip. Pass schön auf dich auf!! :3

1 Antwort anzeigen
A
Admin

Ja, viel zu tun aktuell, aber ich schreibe bald wieder einen neuen Post.

H
Hallo

Hallo

1 Antwort anzeigen
A
Admin

Hallo

6 weitere Kommentare anzeigen
G
Georg

Hallo

1 Antwort anzeigen
G
Georgen

Wer hat meinen Namen geklaut?

S
StaticSiteLover

Das ist so cool. Ich habe glaube ich noch nie ohne JS kommentiert. :-)

1 Antwort anzeigen
S
StaticSiteLover

Ich kann ja sogar auf meinen Kommentar antworten.

E
Ellie

Dies ist Spam

1 Antwort anzeigen
S
SpamChecker

Diese Nachricht wurde als Spam vom Nachrichtenautor als Spam gekennzeichnet.

1 Antwort anzeigen
F
Fake News

Get the Spam Checker out of here!

J
Jan

= <b>Kommentare</b>, juhu!

1 Antwort anzeigen
J
Jan

Und sogar escaped ;)

1 Antwort anzeigen
A
Admin

Natürlich ^^

m
mina

Das hast du klasse gemacht Marco! #deingrössterhater

1 Antwort anzeigen
A
Admin

Danke :)

C
Chemiker

oh hi marco :)

1 Antwort anzeigen
A
Admin

hey :)