Prof. Dr. Detlef Stern

Zettelstore 0.3

Die gute Nachricht für alle Nutzer des Zettelstore: Version 0.3 ist verfügbar, sogar schon seit 10 Tagen.

Neben den üblichen Fehlerkorrekturen gibt es eine Änderung, die den Zettelstore nicht mehr kompatibel zur Version 0.2 macht: Dateien mit der Endung .meta werden nicht mehr als Metadaten, sondern als Inhaltsdaten interpretiert. Wer beim Start Meldungen bekommt, in denen auf Duplikate hingewiesen wird, sollte die entsprechenden Dateien so umbenennen, dass diese keine Dateiendung mehr besitzen.

Wie in der Meldung zur Version 0.2 angekündigt, gibt es nun eine Möglichkeit, einfache Graphiken zu erstellen. So wird aus:

+-------+       +-------+
| Box 1 | ----> | Box 2 |
+-------+       +-------+

die Graphik

Dazu verwendet der Zettelstore die Open-Source-Bibliothek ASCIIToSVG. Allerdings ist diese nicht ganz optimal geeignet, so dass ich sie ein wenig für den Zettelstore angepasst habe. Bei ersten Experimenten kam heraus, dass auch noch einige Fehler vorhanden sind. Dafür besitzt die Bibliothek einige Produktmerkmale, die ich für den Zettelstore nicht benötige, z.B. kann man Elemente der Graphik anders farbig gestalten.

Lange Rede, kurzer Sinn: hier werde ich noch etwas Arbeit investieren müssen. Dank Open-Source ohne Probleme möglich. Aber immerhin kann ich schon erste Graphiken für meine Vorlesungen bauen.

In diesem Kontext habe ich Zettelmarkup dahingehend erweitert, dass man die Graphiken direkt in seinem Text spezifizieren kann, also für die Graphik nicht zwingend einen eigenen Zettel mit Syntax „draw“ benötigt. Natürlich ist das Ganze etwas generalisiert worden. So können auch Inhalte mit anderer, vom Zettelstore unterstützter Syntax in einen Zettel integriert werden. Beispielweise kann man zwischendurch auch einmal zu Markdown wechseln.

Diese „Inline-Zettel“ sind sowohl im Kontext eines ganzen Abschnittes als auch innerhalb eines Absatzes möglich. Da als Syntax auch HTML unterstützt wird, kann man so HTML-Elemente angeben, die mit Zettelmarkup (meist aus guten Gründen) nicht möglich. Im Fall von HTML verliert man dann natürlich einige Vorteile des Zettelstore, die aber nicht jeder nutzt.

Neben diesen „Inline-Zettel“ können nun auch auf Abschnittebene andere Zettel automatisch eingefügt werden. Auf Absatzebene ist das ja schon länger verfügbar. Dieses Konzept nennt sich Transklusion. Damit ist es möglich, einen Zettel aus kleinen, atomaren Zetteln zu erstellen. Ändert man einen der kleinen Zettel, ändern sich auch diejenigen Zettel, die diesen kleinen Zettel transkludieren.

Bis auf einige recht spezielle Änderungen ist dies der Umfang der Version 0.3.

Die nächste Version ist schon in Arbeit. Ein Schwerpunkt ist es, die Struktur der Zettel auch externen Programmen zugänglich zu machen. Dazu baue ich meine Software zur Erstellung von Vorlesungsunterlagen („Zettel Presenter“) etwas um und lasse den Zettelstore das dazu nötige HTML nicht mehr generieren. Vielmehr nutze ich die API, um mir die Struktur von Zettel zu geben, aus denen dann der Zettel Presenter selbst HTML generiert.

Dies ist zugleich eine Vorbereitung, um die Software für dieses Blog auf eine Zettel-basierte Grundlage zu stellen.

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