Die eigene Lesezeichenverwaltung
tl;dr
Lesezeichen ist im Grunde eine web basierte Self-Hosting-Lösung, um zentral eigene Lesezeichen für den Browser vorzuhalten - auf allen Endgeräten, Betriebssystemen und Browsern.
Der Antrieb
Ich bin schon lange auf der Suche nach einer Lösung gewesen, um zentral meine Lesezeichen zu verwalten. Es gibt sogar einen Artikel von mir, wo ich über meine Erfahrungen geschrieben habe. Die damalige favorisierte Lösung xBrowserSync wird nicht mehr weiter entwickelt.
Da ich nicht nur mit macOS zu tun habe, sondern auch mit FreeBSD, auch manchmal mit Windows, lag es nahe nach etwas neuem zu suchen. Mein Leid teilte ich natürlich mit Gordon in einer unserer Podcast-Folgen - sein Kommentar war lapidar:"Dann mach doch selbst".
Der Unterbau
Dieser Anstoß brachte mich gedanklich auf den Weg, direkt mit Python loszulegen. In der gleichen Nanosekunde löste ich mich aber davon, weil ein Python-Skript per Cron-Job als Beispiel alle fünf Minuten gestartet werden müsste, damit neue Lesezeichen auch sichtbar werden. Das ist nicht akzeptabel - dachte ich mir - also legte ich mit PHP los, ohne auch nur irgend wann mal etwas vollumfänglich mit PHP zu tun gehabt zu haben.
Ich wollte mir aber die Arbeit etwas erleichtern, schließlich hätte ich so etwas wie ein Content Management System gebaut. Und davon gibt es ja reichlich welche.
Meine Wahl ist ganz schnell auf Kirby gefallen, weil ich schon lange mit Kirby hier und da mal etwas umsetze. Gordon und ich hatten sogar den Entwickler von Kirby zu Gast (Link). Also legte ich los und baute erst das Grundgerüst.
Kirby zählt zu den sogenannten Flat-File-Content-Management-Systemen. Die Inhalte für die Webseiten werden in schlichte Text-Dateien gespeichert, eine Datenbank ist nicht erforderlich. Ich brauchte also eine Startseite, wo direkt alle Lesezeichen sichtbar sind und eine zweite Seite, wo über ein Formular zumindest im ersten Schritt die wichtigsten Daten, wie eine URL, Titel und etwas zum Kategorisieren - ein Tag - abgefragt werden.
Und hier endete für mich erst einmal die Arbeit mit Kirby, denn mir war nichts dergleichen bekannt, wie ich über Kirby nun Serveraktivitäten ausführen kann. Nämlich die drei Datenobjekte in das passende Format zu bringen, um final eine Textdatei zu erzeugen, die wiederum von Kirby direkt einbezogen werden kann.
Das Skript
PHP bietet sich hier an und wird auch in etlichen ähnlichen Szenarien verwendet. Der Vorteil von PHP ist, dass der Code auf dem Server ausgeführt wird und so auch in der Lage ist Dateien anzulegen.
Ich habe mich also damit beschäftigt ein PHP-Skript zu entwerfen, dass die drei Datenobjekte entgegen nimmt und Mundgerecht für Kirby als Datei abspeichert. Der Effekt, mein Lesezeichen ist sofort sichtbar.
Wer A sagt muss und auch B sagen; wer sich mal mit dem Thema der Benutzerinteraktion und was alles schief gehen kann, bzw. was noch schöner werden könnte beschäftigt hat kann bestätigen, dass darin die meiste Arbeit einfließt. Als Beispiel, wie wird abgefangen, dass der Benutzer keine richtige Adresse eingegeben, oder schlicht das Taggen vergessen hat?
Also habe ich simple Prüfungsmechanismen eines Formulares genutzt, aber darüber hinaus den Titel der Webseite ausgelesen und ein Standard-Tag gesetzt, wenn beides in der Eile vergessen wurden.
Und wo ich schon beim Auslesen der Webseitenstruktur war, habe ich auch geschaut, ob eine URL zu einem Bild mit Hilfe eines Open-Graph-Meta-Tags zur Verfügung gestellt wird. Mit den Bildern aus dem Internet ist das so eine Sache, daher hatte ich Carola Sieling gefragt. Sie ist Rechtsanwältin und Fachanwältin fur IT-Recht und war bei uns bei einer Podcast-Folge zu Gast, als es um das Thema Creative Commons und Urheberrecht ging. Also, eine hundertprozentige Absicherung ist es nicht, wenn jemand ein Bild über ein Open-Graph-Meta-Tag zur Verfügung stellt. Auch dann nicht, wenn dies ausschließlich fur den eigenen Bedarf ist.
Am Ende hat das Lesezeichen auch ein Bild, sofern dies für soziale Zwecke zur Verfügung gestellt wurde. Falls nicht, gibt es wieder eine Notlösung, ein Standardbild wird eingesetzt.
Was jetzt fehlte, war das Pflegen der Lesezeichen. Vielleicht hatte man sich im Titel verschrieben oder der vorgegebene Titel der Webseite gefiel einem nicht. Nun, Kirby unterstützt das Pflegen von Inhalten mit einem eigenen Panel. Das Panel ist so etwas, wie eine Pflegeeinrichtung für Inhalte der eigenen Website. Die Panel-Layout-Darstellung kann darüber hinaus selbst definiert werden, es gibt also kein Korsett. Mit dem Panel können also nun auch die eigenen Lesezeichen verwaltet werden.
Über den Tellerrand geschaut
Jetzt habe ich Kirby als Basis ausgewählt. Es erleichtert recht einfach das Erstellen der Webseiten mit passenden Logiken, um dynamisch die Inhalte aus den Textdateien in die Webseitenstruktur einzubetten. Darüber hinaus gibt es jede Menge Steuerelemente, die mir u.a. eine Suchmöglichkeit und das zusätzliche Filtern der Lesezeichen über die Tags zu ermöglichen.
Wem das nicht gefällt, kann sein Lieblings-CMS der Wahl nutzen. Das PHP-Skript habe ich so entwickelt, dass es autark funktioniert. Zudem sind die Webseitenstrukturen so angelegt, dass ein Reverse-Engineering mit wenig Aufwand möglich ist - ich habe auf so viel Kirby-Internes verzichtet, wie es nur ging.
Wer zudem Spaß an HTML und das Gestalten per CSS hat, kann sein eigenes Design erstellen. Das war eines der Hauptgründe, warum ich auf schon vorliegende Lesezeichenverwaltungen verzichtet habe, da mir manche Lösungen einfach nicht nur optisch sondern auch von der Handhabung her nicht gefielen. Oder mich durch Add-ons zu sehr in der Browser-Wahl und Nutzung einschränkten.
Was Lesezeichen nicht kann
- Es gibt keine Mehrbenutzer-Verwaltung. Es sei denn, dass man einzelne Kirby-Instanzen in separate Ordner installiert.
- Es gibt keinen Zugriffsschutz per Benutzernamen und Kennwort (nur beim Panel). Hier können Server-Hausmittel (.htaccess / .htpasswd) unterstützen.
- Es ist dafür ausgelegt, seine Lesezeichen nicht der Öffentlichkeit zur Verfügung zu stellen. Es geht, aber dann sind weitere gesetzliche Vorgaben (mindestens in Deutschland) zu berücksichtigen.
Zusammengefasst
Also, "Lesezeichen" ist der Name eines PHP-Skriptes, was die Bereitstellung von Lesezeichen im Browser erleichtert. Hier in diesem Fall zusammen mit Kirby. Es ist also eine reine Web-Lösung, die ohne Add-ons auskommt und so zu 99% mit jedem Browser zurecht kommt, egal unter welchem Betriebssystem und Endgerät. Zu finden ist alles auf Coderberg. Außerdem haben wir uns in unserer 62. Podcast-Folge darüber unterhalten.
Im Browser der Wahl ist "Lesezeichen" bei mir als Startseite eingerichtet, um direkt auf die eigenen Lesezeichen zugreifen zu können.