Prof. Dr. Detlef Stern

Zettelstore 0.9

Die gute Nachricht für alle Nutzer des Zettelstore: Version 0.9 ist verfügbar. Dies gilt auch für die Bibliothek, um auf den Zettelstore zuzugreifen (a.k.a Zettelstore Client.

Was hat sich geändert?

Hinter den Kulissen einiges, direkt sichtbar eher weniger.

Das Testen des Zettelstores, nicht nur manuell, nicht nur mit selbstgeschriebenen Test, sondern auch mit tausenden von virtuellen Affen, die auf der Tastatur herum tippen, hat einige interessante Ergebnisse erbracht.

Bis auf eine kleine, unschöne Eigenschaft, ist das Einlesen von Zettelmarkup stabil. Natürlich ist die gefundene unschöne Eigenschaft inzwischen behoben. Das Einlesen von ASCII- / Unicode-Zeichen als Diagramm bricht ebenfalls nicht ab, weist aber noch inhaltliche Fehler auf. Dagegen zeigte der Text der Go-Portierung von pikchr erhebliche Qualitätsmängel auf. Dies machte mir die Entscheidung leichter, pikchr als Syntax nicht mehr zu unterstützen. Da die Go-Portierung wiederum auf einer Go-Portierung eines Sprachübersetzergenerators basiert, der selbst genügend Fehler aufweisen könnte (meine begründete Vermutung), wäre eine Korrektur des Go-Quelltextes von pikchr viel zu aufwändig. Zumal pikchr eher eine kryptische Sprache ist, deren Ergebnisse nicht unmittelbar einsichtig sind. Was wiederum einer Anforderung des Zettelstores widerspricht: es muss auch ohne Zettelstore funktionieren.

Dafür habe ich die ASCII- / Unicode-Zeichen-basierten Diagramme wieder als voll unterstützte Syntax („draw“) implementiert. Das bedeutet, diese Diagramme sind nicht unbedingt Teil eines Zettelmarkup-Textes, sondern können auch als eigenständiger Zettel abgespeichert werden.

Wie bekannt, hält sich meine Begeisterung für Markdown zur langfristigen Speicherung von Informationen in sehr engen Grenzen. Schon länger gibt es die Möglichkeit, Zettel als CommonMark abzulegen. Ich nutze dies, um Markdown-Daten mit geringem Aufwand in Zettelmarkup konvertieren zu können und damit langlebig zu machen. Nun gibt es auch die umgekehrte Möglichkeit, (eine Teilmenge von) Zettelmarkup als CommonMark darzustellen. Diese Möglichkeit ist etwas eingeschränkt, da Zettelmarkup wesentlich mächtiger ist. In Zukunft werden wohl Elemente, die es so in Markdown / CommonMark nicht gibt, wenigstens teilweise als HTML übersetzt. Denn jedes HTML-Dokument ist ein Markdown-Dokument.

Seitens der Web-Oberfläche gibt es nun endlich die Möglichkeit, Bilddateien und ähnliches als Zettelinhalt hochzuladen. Damit müssen diese nicht manuell in das Zettelverzeichnis kopiert werden, mit dem angemessenen Namen. Zusätzlich habe ich das Format WebP als unterstütztes Bildformat aufgenommen.

Bisher konnte eine Fußzeile mittels Konfigurationseinstellung als HTML-Code für den Zettelstore angegeben werden. Das nutzte z.B. das Zettelstore-Handbuch zur Angabe des Impressums und der Datenschutzhinweise. Nun kann statt des HTML-Codes einfach die Identifikation eines Zettels angegeben werden. Das erlaubt weitere Möglichkeiten, z.B. mittels dynamischer Listen. Zusätzlich ist diese Konfiguration nicht nur global für den gesamten Zettelstore erlaubt, sondern auch für jeden angemeldeten Benutzer. Wer einen im Web erreichbaren Zettelstore anonym nutzt, der muss Impressum & Co lesen können. Wer angemeldet ist, benötigt evtl. andere Informationen im Fußbereich. Bis zur nächsten Version 0.10.0 ist die Angabe des HTML-Codes noch möglich, danach wird sie abgeschaltet.

Ganz ähnlich zum Fußbereich kann auch der Startzettel sowohl global für einen Zettelstore konfiguriert werden, wie auch für jeden angemeldeten Benutzer einzeln. Damit gibt es in diesem Fall zwei Zettel, die auf der Web-Oberfläche schnell erreichbar sind.

Eher Kleinigkeiten sind die Unterstützung für ein Fav-Icon (wer kleine Bildchen im Browser-Tab mag) oder eine erste Version eines Cheat Sheets für Zettelmarkup. Der Kontext eines Zettel bevorzugt nun Folgezettel vor normalen Verknüpfungen. Viele kleine Fehler und Ungereimtheiten sind beseitigt.

Tja, das war es auch schon. Mein sonstiges Leben ist dank des Cybercybervorfalls an meiner Hochschule nicht weniger aufwändig geworden.

Was kommt in Version 0.10.0?

Wie oben geschrieben: dann ist es nicht mehr möglich, den Fußbereich per HTML-Code in der Konfiguration anzugeben.

Ebenfalls werden einige API-Endpunkte vereinfacht. Der Endpunkt /z arbeitet mit Zetteln im Reintext, /j mit Zetteln als JSON, /m mit Metadaten als JSON, /p kodiert eingelesene Zettel in ihrer Struktur, /v macht das für eingelesene und interpretierte Zettel. Dabei sind dies nur unterschiedliche Repräsentationen des jeweils gleichen Zettels. Daher werden diese Endpunkte mit dem Endpunkt /z vereinheitlicht. Zunächst erfolgt die Selektion der Repräsentation per Query-Parameter, in einer zukünftigen Version auch durch den HTTP-Header.

Ansonsten habe ich aktuell eher wenig geplant. Die Ideen für die Client-Software (Zettel Mail, Zettel Presenter, Zettel Publisher) sind nicht vom Tisch.

Aber vielleicht kommt noch eine Anregung aus dem Kreis der Nutzer oder Interessierten dazu …