Springe zum Hauptinhalt

Mastodon als Kommentarsystem für Nikola

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:

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.

Kommentare

With an account on the Fediverse or Mastodon, you can respond to this post. Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one. Known non-private replies are displayed below.