Planung: IndieConnector 3
Es mag im ersten Moment nicht nachvollziehbar sein, die Arbeit an einem neuen Major-Release anzukündigen, wenn zeitgleich noch ein Kurs und ein Sync-Plugin auf ihre Fertigstellung warten, aber ich habe mir da meine Gedanken gemacht.
Ich nehme derzeit immer wieder Änderungen an meiner Webseite vor und fast jede dieser Änderungen unterliegt dem Ziel, Dinge zu vereinfachen. Für die Besucherinnen, für mich im Panel und im Code. Darauf zielt auch das geplante Release für den IndieConnector.
Das übergeordnete Ziel des IndieConnector wird sein, Dinge zu vereinfachen.
Der IndieConnector begann als Plugin zum Empfangen von Webmentions. Inzwischen ist der Funktionsumfang stark gewachsen. Ich habe bei allen Versionen versucht, immer abwärtskompatibel zu sein, aber um das Plugin wartbar zu halten, ist es an der Zeit, den einen oder anderen Schnitt zu machen.
Ich möchte diesen Post nutzen, allen die Gelegenheit zu geben, laut aufzuschreien und Wünsche oder Probleme zu äußern.
Breaking Changes
IndieConnector 3 wird mit breaking changes daherkommen. Ich werde Dinge entfernen, die ich seit Versionen mit mir mitschleppe, die aber vermutlich nur noch wenige User nutzen. Das Entfernen dieser alten Optionen, Funktionen und Abläufe ist notwendig, um den Code wartbar zu halten, ohne zu viel Zeit investieren zu müssen.
Das Entfernen alter Optionen, die noch im Code vorhanden sind, um abwärtskompatibel zu sein, ist ein erster Schritt zur Warbarkeit.
Die größte Änderung wird die Abschaffung der IndieConnector.json Datei sein. Diese stammt aus der ersten Version des Plugins. In ihr merkt sich das Plugin, an welche URLs bereits Webmentions geschickt wurden, ob schon ein Post zu Mastodon erstellt wurde, usw.
Das stammt noch aus der Zeit, als IndieConnector hauptsächlich Webmentions gehandhabt hat. Ich wollte auf eine Datenbank verzichten. Inzwischen setzen aber fast alle anderen Funktionen eine SQLite-Datenbank voraus. Ich möchte daher diese Datei und alle Umstände, die damit einhergehen, abschaffen. Ein geplantes Feature spricht auch dafür, später mehr.
Hier habe ich am ehesten mit einem Aufschrei gerechnet und Deine Meinung interessiert mich. Benutzt Du den IndieConnector noch ganz ohne Datenbank? Würde SQLite als Voraussetzung für das Plugin den Einsatz bei Dir verhindern?
Neue Features
Für das Release sind einige neue Funktionen geplant, die größtenteils die Bedienung vereinfachen sollen:
- Webmention Rendering
- standard.site
- Post-Templates
- Status-Feld
- Post-Hook
- Buffer API
- Nested Replies
Webmention-Rendering
Die wohl essenziellste Änderung wird die Möglichkeit sein, Webmentions anzeigen zu können, ohne das Komments-Plugin nutzen zu müssen.
Für viele User ist es wenig nachvollziehbar, ein Webmentions-Plugin installiert zu haben und dann keine Webmentions anzeigen zu können, ohne ein Kommentar-Plugin installiert zu haben. Auch das ist eine Altlast.
Ursprünglich hat der IndieConnector nur Webmentions empfangen, diese in ein einheitliches Format gebracht und dann per Kirby-Hook anderen Plugins bereitgestellt. Das Komments-Plugins hat auf diesen Hook gehört und die Webmentions als Kommentare gespeichert.
Das Ziel für Version 3 wird es sein, Webmentions dauerhaft zu speichern – daher auch SQLite als Voraussetzung – und diese dann auch direkt darstellen zu können. Dazu wird es Snippets und page-methods geben. Es braucht dann kein weiteres Plugin mehr, wenn das nicht gewünscht ist.
standard.site
Zusätzlich zu der bestehenden Möglichkeit, zu Bluesky zu posten, macht gerade standard.site die Runde. Ich glaube IndieConnector ist der perfekte Ort für eine Kirby-Umsetzung. Das ist der erste Schritt, tiefer ins at-Universum einzutauchen.
Post-Templates
Derzeit ist es möglich, bei jeder Seite, einen Text festzulegen, der dann bei Mastodon oder Bluesky veröffentlicht wird. Das funktioniert gut, wenn man z. B. schon einen Einleitungstext für einen Blogpost hat. Gibt es keinen Text, dient der Seitentitel als Ersatz.
Mit der Einführung von Post-Templates soll es möglich sein, einen Text zu konfigurieren und darin ggf. Platzhalter zu nutzen. So könnte ein Template lauten: "Neuer Blogpost online: { title }". Dieser Text wird dann z. B. bei Mastodon gepostet und die Platzhalter werden ersetzt. Die User müssen also nicht jedes Mal einen Text verfassen, wenn sie nicht möchten.
Status-Feld
Wird bei dieser Seite eigentlich ein Mastodon-Post erstellt, wenn ich sie veröffentliche? Wer hat sich das schon einmal gefragt? Gerade wer Template-Filter konfiguriert hat, könnte in diese Falle laufen. Das Status-Feld soll Abhilfe schaffen.
Wobei ich bislang nicht sicher bin, ob es ein Feld sein wird, oder der vorhandene Share-Dialog.
Ziel ist es, dem User klar zu zeigen, was passieren wird, wenn eine Seite veröffentlicht wird. Wird ein Post bei Mastodon oder Bluesky erzeugt? Werden Webmentions verschickt? Wurde schon ein Post erzeugt? Stellenweise zeigt das Dialogfenster solche Informationen schon an, ich will das noch klarer gestalten.
Post-Hook
Um weitere Dienste anschließen zu können, soll es, wie hier vorgeschlagen einen Hook geben, der ausgelöst wird, sobald das Plugin einen Post erzeugen würde. Dieser Hook bekommt relevante Daten reingereicht, wie die URL, den Text oder Tags.
User können diesen Hook nutzen, um eigene Aktionen mit diesen Daten auszuführen, und z. B. Daten an Dienste zu schicken, die bisher nicht direkt vom Plugin unterstützt werden.
Buffer API
Ich habe lange überlegt, ob und wie ich weitere Dienste anschließen kann, und habe mich zunächst dafür entschieden, als nächstes Buffer zu unterstützen. Das hat den Vorteil, dass von dort aus Plattformen bedient werden können, die IndieConnector vermutlich niemals direkt unterstützen wird: Instagram oder LinkedIn.
Die API ist überschaubar und ermöglicht einen großen Spielraum für den User. Vielleicht ein erster Schritt in Richtung weiterer Dienste wie Zapier, n8n oder IFTTT.
Nested Replies
IndieConnector sammelt Antworten von Mastodon und Bluesky zwar ein, kann diese aber nicht in Beziehung zueinander stellen. Für manche Anwendungsfälle, wäre es aber schön, wenn das ginge.
Antwortet jemand bei Mastodon auf eine Antwort, sammelt das Plugin diese zwar ein, aber derzeit bleibt es bei einer flachen Liste. Das möchte ich ändern, soweit das geht. Es soll also auch im Plugin möglich sein, nachzuvollziehen, welcher Mastodon-Post sich auf welchen anderen bezieht. Somit können diese in der Darstellung dann z. B. verschachtelt angezeigt werden.
Fazit
Diese Änderungen sind mal mehr, mal weniger umfangreich. Sie werden definitiv Zeit brauchen. Ich möchte auch weiterhin alles mit Tests untermauern, und das benötigt Zeit.
Mein Fokus wird daher künftig auf dieser Version liegen und IndieConnector 2 wird vorerst nur noch Fixes spendiert bekommen. Also Feature-Freeze für Version 2.
Ich bitte hiermit noch einmal ausdrücklich um Feedback! Wie benutzt Du das Plugin? Warum benutzt Du es nicht? Was fehlt? Wo hakt es?
Du kannst mir entweder hier einen Kommentar hinterlassen, mir eine E-Mail schreiben, oder die Kontaktmöglichkeiten auf meiner [[/about|About-Seite]] nutzen. Vielen Dank!
Wenn Du auf dem Laufenden bleiben willst, kannst Du natürlich mein Blog lesen und per RSS abonnieren, Du kannst Dich aber auch in meinen Plugin-Newsletter eintragen. Hier werde ich künftig unregelmäßig von neuen Entwicklungen berichten: