BBEdit als GUI
Meine Anteilnahme an den Experimenten von Thomas Fürstner ist nicht nur akademischer Natur. Ähnliche Überlegungen hatte ich – einmal angeregt durch Gedanken von Oliver Wrede – leider habe ich die URL verschlampt, vielleicht kann Oliver da aushelfen ;o) – und zum anderen inspiriert durch blosxom auch bei der Entwicklung meines eigenen, selbstgestrickten Weblog-Tools, das ich seit dem Crash von Radio UserLand bis zu meinem Umzug in die Server-WG benutzt hatte – ebenfalls angestellt. Nur daß ich – anstelle des Outliners von Radio/Frontier – den besten Editor der Welt als GUI-Mittelpunkt ausgewählt hatte.
Ausgangspunkt war der – speziell von Oliver vertretene – Gedanke, daß das Browserfenster doch ein armseliger Ersatz für eine »richtige« IDE, für ein »richtiges« GUI sei. Und wenn man sich dann Gedanken über den (damaligen) Erfolg von HyperCard macht, kommt man meiner Meinung nach leicht auf die Idee, daß eine Anzahl von Applikationen gemeinsam mit einer leicht verständlichen Skriptsprache und einer guten IDE auch »Nichtprogrammierer« zu wahren Kreativitätssprüngen hinreißt. Und so dachte ich mir, warum nicht ein Weblog-Tool entwickeln, daß zwar einerseits »out of the box« funtioniert, andererseits aber auch Leuten mit minimalen Kenntnissen einer Skriptsprache (in meinem Falle Python) erlaubt, dieses leicht anzupassen, zu ändern und zu ergänzen?
Blieb nur noch die Frage nach dem GUI. Angelpunkt für viele – speziell Power- – User ist schon seit Jahren der Texteditor. In und mit ihm schreibe ich meine Texte in TeX, meine HTML- und XML-Seiten für meine Projekte, meine Skripte, Programme und selbst Graphiken (SVG, VRML). Neben dem Terminal ist der Editor meine Hauptschnittstelle zwischen mir und meinem Computer.
OK, von da an war es nur noch ein kurzer Weg. Mein Weblog-Tool hatte ich schnell in Python codiert, jetzt ging es nur noch darum, dies mit dem Editor (als meinem GUI) zu verbinden. Zwar erlaubt BBEdit auch die direkte Ausführung von Python-Skripten aus dem Programm selber heraus, dennoch hatte ich mich entschieden, die Python-Skripte über den Umweg von AppleScript aufzurufen. Denn für einige (mögliche) Anwendungen wird u.U. der Name der Datei des frontmost windows benötigt und – obwohl es vermutlich geht – ich habe bis heute nicht herausbekommen, wie ich das dem aufzurufenden Python-Skript mitteile.
Das herauszufinden wiederum ist für AppleScript eine Kleinigkeit und so genügen kleine Skripte in der Form do shell script "python..." um die darunterliegenden Python-Skripte inklusive Parameterübergabe aufzurufen. Das Ganze sieht daher ungefähr folgendermaßen aus:
Screenshot Weblog-Tool, ein Klick öffnet eine Vergrößerung im neuen Fenster.
Der Screenshot zeigt zwei, über das AppleScript-Menü erreichbare neue Menü-Einträge. Einmal Publish Article und einmal Publish Month. Der erste Menü-Eintrag ruft ein Python-Skript auf, daß den aktuellen Artikel dem aktuellen Tageseintrag hinzufügt, der zweite Eintrag dient nur dazu, am Anfang eines Tages die vorherigen Monatseinträge neu zu schreiben, um den Kalender zu aktualisieren. (Regelmäßige Leser meines Weblogs wissen, daß ich nie dazu gekommen bin, diesen zweiten Eintrag – obwohl es eigentlich ziemlich einfach ist – zu implementieren.) Mein Weblog-Tool benötigte übrigens keine Parameterübergabe, es geht einfach davon aus, daß die tagesaktuellen Einträge immer im entsprechendem Datumsordner (in der Form /2003/11/11/ ) in sortierbarer Reihenfolge vorliegen, wohl aber das ähnliche funktionierende »Mini-CMS«, mit dem ich u.a. die Nigeria-Connection füttere. Denn die verlangte natürlich die Übergabe des Dateinamens.
Die ersten Zeilen, beginnend mit »#« sind eine Art Variablenübergabe, in der Form der von mir gewünschten Kompatibilität mit dem Radio-Userland-Dateiformat geschuldet. Und die zwichen den <% und %> liegenden Strings sind Makros oder Shortcuts, die mein Weblog-Tool auswertet.
Wie man aus obigem Screenshot leicht sieht, muß der Benutzer, um sein Weblog zu führen, nie den Editor verlassen, alles wird von hier aus erledigt. Und meine Hoffnung dabei ist, – da auch Python-Skripte im Editor erstellt und gewartet werden – daß ein neugieriger User dann auch mal die dazugehörenden Python-Skripte aufruft, sie seinen Bedürfnissen anpaßt und verändert. Und schon haben wir wieder ein neues Mitglied der skriptenden (programmierenden) Community gewonnen.
Zwei Dinge sind noch zu erwähnen:
[1]: Ich werde in den nächsten Tagen successive den Quellcode meines Tools mit Erläuterungen hier veröffentlichen. Er ist Open Source, ich habe es nie geschafft, ihn zu einem verbreitbaren Tool fertigzustellen. Vielleicht schafft es jemand anders, mich würde es freuen.
[2]: Mit meinem Wechsel zu COREblog sind diese Ideen natürlich nicht gestorben. Mein derzeitiger Gedanke ist, dieses Tool dahingehend zu erweitern, daß es via dem MetaWeblog API oder ähnlicher XML-RPC-Mechanismen (ähnlich wie hier) in der Lage ist, COREBlog, aber auch mein Antville- oder mein Twoday-Testblog zu füttern. Vielleicht ist es auch dann wieder für andere nützlich.
Denn – wie gesagt: Nie mehr wieder im Browserfenster editieren!
|