Xmind to object

Monday, November 19. 2012

Eine Powerpoint-Folie als Vorlage um dann mit dem Editor ein mehrfach verschachteltes object in javascript-Notation zusammenzuschreiben, und trotz aller Umsicht ist bei copy&paste-Aktionen dann doch irgendwo ein Komma oder eine Klammer verloren gegangen - eine Aufgabe, die mich recht schnell zu der Überlegung führt, dass da ja wohl etwas nicht stimmt, wenn ich als Mensch versuche, was die Maschine doch wirklich besser kann: 
stur und unablenkbar genau eine langweilige, umfangreiche Routine abzuarbeiten.

Die erste Idee - ein script, dass aus einer .pptx direkt  das gewünschte javascript-Object erzeugt - lasse ich schnell wieder fallen, zu gross die Variabilität des Inputs und noch dazu ist das XML der .pptx ist ein wenig abschreckend geraten...

Stattdessen entscheide ich mich für ein freundliches Zwischenformat, und das ist für mich eine Xmind - mindmap. Ein besonders freundlicher Zug dieses Formates ist die Tatsache, dass es dank MEKK mit python (2.x) sehr einfach ist, mindmaps zu generieren oder zu parsen. 

Wie man MEKK unter debian installiert, habe ich in einem vorigen Artikel schon aufgeschrieben, diesmal unter cygwin auf win7 war es nicht so sehr anders: mercurial und gcc mit setup installieren, hg clone https://bitbucket.org/Mekk/mekk.xmind, im ersten Durchlauf beklagt hg noch dass fehlen einiger Pakete (libxml und libxslt in dev-Version) und dann steht das MEKK-Modul bereit. 

Die Umwandlung der powerpoint-Folien in Xmind-Maps habe ich mir als zweiten Schritt aufgehoben, hier erstmal das Script mon der Map zum Objekt. Als frühe alpha ist es ein wenig beschränkt, was die Verschachtelungstiefe anbelangt, weil es mein Anwendungsfall so wollte, geht das Script von einer Struktur aus, wo unter dem Wurzelknoten zwei Hierarchiebenen vorgesehen sind, die optional noch childNodes haben  können, während für die dritte Ebene diese Möglichkeit nicht mehr erwartet wird.   Das kann man sich aber gegebenenfalls anpassen.

Mit dem Aufruf    python x2o.py test.xmind   gestartet erzeugt das Script ein HTML-Dokument, dessen Name teils von dem geparsten .xmind bestimmt wird. Im beiliegenden Beispiel lautet der Text des Wurzelknotens "project" und die erzeugte Datei heisst test_project.html.

Das HTML-Dokument enthält das generierte js-object, mit einem Editor kann man es sich herauspicken, mit einem Browser auf syntaktische Korrektheit pruefen. Wenn das Objekt funktioniert, gibt das .html abschliessend mit einem alert("Es geht!" Bescheid, wenn man es im fireFox öffnet, zeigt der Alert gleich die source des object an.

Download: x2o.zip

(Page 1 of 1, totaling 1 entries)