Wieder da und der Blog kann mehr
· 3 Min. LesezeitKurzes 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:
- Tags mit eigener Übersichtsseite
- Pagination für die Post-Liste
- Vor/Zurück-Navigation zwischen Beiträgen
- Ein RSS-Feed, ganz ohne Zusatz-Plugin, weil Hugo das eingebaut mitbringt
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:
- Das Formular sendet die Daten per normalem HTML-POST, kein JavaScript beteiligt
- Der Go-Dienst prüft automatisiert auf Spam
- Der Kommentar wird als JSON-Datei gespeichert
- Der Dienst baut die Seite automatisch neu
- 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 ^^
Oha, Kommentare!
Wann neuer Content
2 Antworten anzeigen
es wird neuen content gegeben haben, irgendwann(tm)
Jetzt gibt es neuen Content ^^
Moin?
1 Antwort anzeigen
Moin
Wieder tot? Rip. Pass schön auf dich auf!! :3
1 Antwort anzeigen
Ja, viel zu tun aktuell, aber ich schreibe bald wieder einen neuen Post.
Hallo
1 Antwort anzeigen
Hallo
6 weitere Kommentare anzeigen
Hallo
1 Antwort anzeigen
Wer hat meinen Namen geklaut?
Das ist so cool. Ich habe glaube ich noch nie ohne JS kommentiert. :-)
1 Antwort anzeigen
Ich kann ja sogar auf meinen Kommentar antworten.
Dies ist Spam
1 Antwort anzeigen
Diese Nachricht wurde als Spam vom Nachrichtenautor als Spam gekennzeichnet.
1 Antwort anzeigen
Get the Spam Checker out of here!
= <b>Kommentare</b>, juhu!
1 Antwort anzeigen
Und sogar escaped ;)
1 Antwort anzeigen
Natürlich ^^
Das hast du klasse gemacht Marco! #deingrössterhater
1 Antwort anzeigen
Danke :)
oh hi marco :)
1 Antwort anzeigen
hey :)