Es ist soweit und hat nicht so lange gedauert, wie ich gedacht hatte. Man kann nu wieder Kommentare im Blog hinterlegen, aber nur sehr rudimentär.
Früher mit Isso
Bisher konnte man dank Isso
sehr einfach einen Kommentar unter einen freigegebenen Blogbeitrag schreiben. Daraufhin wurde eine E-Mail an mich verschickt, die den Text enthielt und ich konnte mittels Aufruf zweier URLs bestimmen, ob der Kommentar freigeschaltet wird oder gelöscht. Das ganze war unabhängig von Hugo.
Jetzt mit json-Datei
Der jetzige Ablauf ist: Wenn jemand einen Kommentar hinterlassen möchte, klickt er/sie/es im Kommentarbereich auf den Link und daraufhin öffnet sich der lokal installierte E-Mail-Client mit einer vordefinierten E-Mail, in der man den Kommentar schreiben und mir zusenden kann. Dort ist die URL des Blogbeitrags bereits enthalten. Sobald ich Zeit und Lust habe (wie bisher auch schon), werde ich den Kommentar und ein paar Zusatzinformationen in eine .json-Datei innerhalb des Page Bundles des Blogbeitrags eintragen.
Die zusätzlichen Daten sind aktuell:
- Eine innerhalb des Blogbeitrags eindeutige ID
- Name
- Website
- Datum
- Uhrzeit
Dabei liegen alle Kommentare eines Blogbeitrags immer im Page Bundle. Sollte ich später einen Blogbeitrag depublizieren wollen, so muss ich nicht gesondert an die Kommentare denken, da alles in einem Verzeichnis enthalten ist. So gefällt mir das.
json-Datei nicht veröffentlichen
Man muss aber noch dafür sorgen, dass die json-Datei mit den Kommentaren nicht in der fertigen, von Hugo gerenderten Website enthalten ist.
Dazu habe ich noch keinen guten Ansatz gefunden.
Es gibt z. B. excludeFiles
(siehe hier), aber dann wird die json-Datei auch gar nicht mehr für die Verarbeitung im Template gefunden. Dann gibt es noch per Page Bundle
die Option _build
(siehe hier), aber ich hätte das gerne global.
Die “veraltete” Variante mit ignoreFiles
(siehe hier), die aber gar nicht greift, weil ich auch hier nicht schlau genug bin.
D. h. derzeit wird die json-Datei noch immer mit veröffentlicht, enthält aber keine Daten, die nicht auf in der gerenderten html-Datei enthalten sind, außer vielleicht der ID.
Alternativ könnte ich nach dem Rendern der Website per find
alle entsprechenden json-Dateien löschen lassen, aber das spare ich mir aktuell noch.
Noch sehr rudimentär
Bei Isso war es möglich, auf einen bestimmten Kommentar Bezug zu nehmen, das geht aktuell mit meiner eigenen Implementierung noch nicht, da ich dazu nicht schlau genug bin, noch nicht. 🤪
Es werden stumpf alle Kommentare in der Reihenfolge der Ankunft bei mir nacheinander gelistet.
Beispiel
Ich habe im Page Bundle dieses Blogbeitrags diese JSON-Datei hinterlegt:
[{
"id": 0,
"author": "Natenom",
"text": "[…]",
"website": "https://natenom.de/",
"date": "2023-12-08",
"time": "18:09"
},
{
"id": 1,
"author": "Vrifox",
"text": "[…]",
"date": "2023-12-08",
"website": "https://vrifox.cc/",
"time": "18:10"
}
]
Das Ergebnis kann man unten im Kommentarbereich sehen.
Nachtrag
Die alten 7 Kommentare aus der Zeit von Isso, werde ich später hier auf diese Art nachtragen. 😄
Kommentare
2023-12-08 um 18:09 von Natenom (Website): Ein einfacher Kommentar von mir. So gefällt mir das und es ist alles in einer .json-Datei hinterlegt.
id: 0Und noch ein Zeilenumbruch für den Test
2023-12-08 um 18:10 von Vrifox (Website): Ich hab Kommentar nicht wirklich geschrieben (das war Natenom), aber der braucht hier einen zweiten Kommentar zum Testen.
id: 12024-01-05 um 13:14 von Ranomier: Wollte auch einfach Mal meinen Senf dazu geben. json ist eh viel besser als SQL :3
id: 22024-01-04 um 17:26 von Natenom: Vor allem muss ich mir nie wieder Gedanken machen um irgendwelche dynamischen Programmausführungen und es funktioniert trotzdem bei jedem Hoster, falls ich irgendwann mal irgendwohin umziehen müsste, wo es nur Web gibt und sonst nichts.
id: 3Kommentar oder Anmerkung für diesen Blogbeitrag
Öffentlicher Kommentar per E-Mail: Hier klicken
Nicht öffentliche Anmerkung per E-Mail: Hier klicken
Sonstige Kontaktaufnahme: Kontakt