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. 😄