.. title: Mastodon als Kommentarsystem für Nikola
.. slug: mastodon-als-kommentarsystem-fur-nikola
.. date: 2024-01-14 19:03:43 UTC+01:00
.. tags: Technik
.. category: 
.. link: 
.. description: 
.. type: text
.. mastodon: 111755739400859832

Ich bin sicher nicht der erste, der Mastodon als Kommentarsystem einsetzen wollte. Immerhin waren es Blogbeiträge zum Thema, weswegen ich das überhaupt aufgreifen wollte. Aber anscheinend gab es vor mir niemanden, der das für Nikola_ umgesetzt hat.

Nun hatte ich mir Nikola ja deswegen ausgesucht, weil es in Python geschrieben ist und ich Python als sehr lesbare und einsteigerfreundliche Sprache ansehe. Zu recht, wie ich nach dieser Arbeit erneut feststellen muss.

tl;dr: https://github.com/MasinAD/nikola-mastodoncomments/ ist das Ergebnis.

Für ausgiebige Erklärungen, was da passiert, verweise ich lieber auf meine Inspirationsquellen:

* `Simon Detheridge`_
* `Carl Schwan`_
* `Veronica Berglyd Olsen`_

Grob formuliert, funktioniert das so:

1. Ich schreibe einen Blog-Eintrag.
2. Ich verlinke in einem Mastodon-Beitrag auf meinen Blog-Eintrag.
3. Ich notiere die ID meines Mastodon-Beitrags.
4. Ich füge dem Blog-Beitrag diese ID als zusätzliches Meta-Datum hinzu.

Das Plugin kann dann auf der Basis dieser ID die Antworten auf den Beitrag laden, sofern der Beitrag nicht in der Sichtbarkeit beschränkt ist. Die hohe Kunst ist dann sicher, aus der Antwort der Mastodon-Instanz hübsch aufbereitete Kommentar-Beiträge unterhalb des Blog-Eintrags zu machen. Um den Teil habe ich mich bislang nicht weiter gekümmert, aber nach dem, was ich gesehen habe, werde ich mit der bisherigen Arbeit sicher nicht glücklich sein.

Das Plugin lädt mittels API den Context des Beitrags. Dieser enthält das Attribut ``descendants`` mit Referenzen auf alle Antworten auf die ID. Das ist aber erstmal nur flach und erfordert die Auswertung der jeweiligen Attribute ``id`` und ``in_reply_to_id``. Derzeit werden nur Antworten auf Kommentare ein Mal eingerückt, aber das geht bestimmt auch noch besser.

.. _Nikola: https://getnikola.com
.. _Simon Detheridge: https://sd.ai/blog/2023-10-19/integrating-mastodon-and-ghost/
.. _Carl Schwan: https://carlschwan.eu/2020/12/29/adding-comments-to-your-static-blog-with-mastodon/
.. _Veronica Berglyd Olsen: https://berglyd.net/blog/2023/03/mastodon-comments/