Kirby Komments Plugin
For some time now, you can leave comments on my site. After some development time I recently published my solution for that as a Kirby plugin.
I was missing the possibility for adding plugins to my site without using an external service, for some years now. So I started writing my own plugin. There already is a Plugin by Sebastian Greger where I shamelessly stole some ideas and code snippets 🙈 (I hope Sebastian isn't angry with me). But I had some ideas and problems I couldn't solve with that plugin.
Komments - my new plugin
Komments is the name of my new plugin. And I want to write a short post on some of my thoughts and how this plugin is related to my other kirby plugins.
Comments
Well, obviously I wanted to have comments on my site. This is now possible using this new plugin. There is a simple comment function with a also very simple spam detection. So, you can now write comments.
Webmentions
I also wanted to be able to send and receive webmentions. This currently only works with webmention.io. My plugin is able to do so. Thanks to some services I am now able to post a link to this page on twitter or mastodon and to get the feedback from those platforms back to my page (as comments). So if you answer on my tweet related to this post, your answer will end here as a comment.
Special stuff
Before creating an official plugin, I used an internal version of this plugins for some time on my site. During that time I added some more functionality which normally aren't part of such a plugin. So for example, when you publish a page, the plugin can send a toot with a link to mastodon. Also I inform archive.org. I also wanted to be able to disable comments per page.
Why something new?
I had some ideas for my site and I wasn't able to solve them with existing plugins. Next to "normal" comments, I wanted to show ratings. You can give positive or negative feedback on this page below. I wanted to handle those ratings with a separate plugin. But I also wanted those ratings to react to webmentions. So if a like is being received via webmention, I wanted the rating plugin to increase the numbers.
The problem is, that there can be only one webmention endpoint. But with the ratings AND the komments, if have two different plugins needing an endpoint.
My solution was a third plugin wich I published some time ago: Tratschtante. The plugins listens to the webmention endpoint and then distributes the data via a hook. Other plugins can listen to that hook, grab the data and do whatever they want with it. So if you use Tratschtante you can receive webmentions and any plugin could listen to Tratschtante and will get the data (in a normalized format) and can react according to its function.
The result: A twitter like will create a thumb up at the rating plugin and also a new comment with the komment plugin.
Future plans?
I have some more - more or less visible - functions on this site, which I want to publish as a plugin. Those will use Tratschtante and other interfaces to work together.
For the komment plugin there will probably be some more fixes and customizations in the future. It's in beta currently, but I am using it for quite some time now on this page, so I think it runs pretty stable.
I also want to extend panel support and clean up the panel view a bit. And I bet spam detection will be an ongoing topic.
Hallo Maurice,
das klingt ja klasse.
Ich bin auf der Suche nach einer Lösung für mein Kirby 3. Webmention interessiert mich dabei nicht - macht es dennoch Sinn und wo sind ansonsten die Unterschiede zur Variante vom Sebastian? Wichtig wäre mir nur, dass ich die Kommentare dann auch im Panel sehen/löschen kann, eine Mail bei einem neuen bekomme, keine Cookies etc. verwendet werden und das Formular optisch einigermaßen in mein Theme passt. Was CSS angeht habe ich nämlich keine Ahnung. :)
Grüße
Hallo Hendrik,
ich habe mir Sebastians Beschreibung noch nicht ganz durchgelesen. Ich glaube er hat einen leicht unterschiedlichen Schwerpunkt. Ich habe hier Wert drauf gelegt, möglich viel Funktion zu bieten und den Konfigurationsaufwand klein zu halten. In erster Linie habe ich versucht, ein Plugin zu schreiben, wie ich es auch gerne einsetzen würde.
Das Plugin bringt eine Übersicht im Panel mit, dort werden alle noch nicht freigeschalteten Kommentare angezeigt. Für die jeweilige Seite kannst du im Blueprint eine Section einbinden, die dir dann dort die vorhandenen Kommentare anzeigt. Mit der Möglichkeit diese zu löschen, auszublenden und in Teilen zu bearbeiten.
Mein Plugin verschickt allerdings keine Mails bei neuen Kommentaren. Und auch ein Cookie wird gesetzt, dort steht allerdings nur die ID der hinterlassenen Kommentare drin. Das dient dazu nach dem Absenden eines Kommentars auf der entsprechenden Seite einen Hinweis anzuzeigen, dass der Kommentar noch in der Moderation ist. Es werden also keine personenbezogenen Daten gespeichert. Außerdem wird auch die E-Mail-Adresse nur verschlüsselt gespeichert, um das Ganze datenschutzseitig etwas unkritischer zu gestalten.
Wenn du ins Github Repo schaust, kannst du dir ansehen, wie es im Panel aussehen würde.
Beste Grüße
Maurice
Hallo Maurice,
vielen Dank. Ich schau mir das mal an. Schaust Du denn täglich in Dein Panel, oder wie bekommst Du mit, dass es neue Kommentare gibt?
@hendrik da ich hauptberuflich Webentwickler bin und der Browser immer griffbereit ist, schlummert das Panel in einem angepinnten Tab im Browser und ich schaue dann und wann mal rein, was sich so tut. Und so viel passiert hier in den Kommentaren dann doch nicht.
Aber generell: Wenn dir ein Feature fehlt, kannst du mir gerne Bescheid geben, ich nehme das auf und baue es ein, wenn es sinnvoll erscheint.