Heute wollte ich’s dann endlich mal durchziehen. Schon länger spielte ich mit dem Gedanken meine 650 sozialen Lesezeichen von Mister Wong zu del.icio.us umzuziehen. Zwar hatte ich den Schritt vor gut einem Jahr schon in die andere Richtung gemacht, was jedoch nichts daran ändert, dass mir über die Zeit immer mehr Dinge beim deutschen Anbieter missfallen haben. Dazu gehören unter anderem die seit vielen Monaten miserable Geschwindigkeit, mangelhaftes Tagging (keine Mehrworttags möglich), schlechte Usability (z.B. „Der Titel darf nicht länger als 100 Zeichen sein…“), und einiges mehr.
Der Umzug ist auf den ersten Blick erstmal kein großes Problem: Mister Wong bietet an die dortigen Bookmarks inklusive Tags und Beschreibung zu exportieren. Ein Format mit dem del.icio.us auch erstmal umgehen kann. Wäre da nicht die seltsame Vorstellung von Tagging auf Seiten Mister Wong. Ebenso wie die Tags intern bei Wong gespeichert werden – nämlich getrennt durch Leerzeichen anstatt der sonst üblichen Trennung durch Kommata – werden sie auch exportiert. So sieht ein Beispielbookmark in der Export-Datei so aus:
Das Attribut „TAGS“ innerhalb des a-Tags zeigt die mit dem Bookmark vergebenen Tags die hier durch jeweils ein Leerzeichen von einander getrennt sind. Importiert man diese Export-Datei nun so in del.icio.us werden diese Tags zu einem einzigen Tag der in diesem Fall wp_wordpress_plugins_plugin lauten würde. Abhilfe schaffen da nur Kommata als Trennzeichen anstatt der Leerzeichen. Das bietet jedoch Mister Wong im Export nicht an und so müssen wir uns selbst helfen. Alles was wir dazu brauchen ist ein Texteditor der in der Lage ist suchen/ersetzen mit regulären Ausdrücken (regular expressions) durchzuführen. In meinem Fall ist das die Mutter aller Editoren unter OSX: Textmate.
Nachdem wir nun also die Export-Datei von Mister Wong auf den eigenen Rechner geladen haben. öffnen wir sie im Texteditor und rufen die Funktion suchen/ersetzen auf. Und so sieht der reguläre Ausdruck für das ersetzen der Leerzeichen durch jeweils ein Komma aus:
Es wird also nach der Zeichenkette »TAGS=“([^“ ]*) « gesucht. Das gefundene Ergebnis wird durch »TAGS=“$1,« ersetzt, wobei $1 hier der gefundene Text aus der Suchmaske ist.
Wichtig: Hiner dem Suchstring steht ein Leerzeichen – also ]*) und ein Leerzeichen dahinter.
Dieser Suchstring findet jedoch immer nur den ersten Tag mit einem Leerzeichen danach. Zumindest in Textmate habe ich bisher keine Möglichkeit gefunden alle Leerzeichen zwischen den Tags auf einmal zu ersetzen. Daher muss die Aktion mehrfach ausgeführt werden, bis der Editor keine Vorkommnisse mehr findet. Im Falle von Textmate reicht die Betätigung von „Replace All“ nun aus um alle vorkommen zu ersetzten. Danach erscheint an der Stelle an der im Screenshot „Nothing“ zu sehen ist die Zahl der durchgeführen Ersetzungen. Die sollte grob mit der Anzahl der exportierten Bookmarks übereinstimmen und mit jedem weiteren Klick sinken. Das wiederholen wir nun so lange bis dort ebenfalls „Nothing“ steht. Dann sollte alles ersetzt sein. Kurze visuelle Kontrolle kann auf keinen Fall schaden.
Was mich außerdem noch gestört hat ist die Tatsache, dass Mister Wong die Tags noch ein zweites mal, nämlich im Beschreibungstext exportiert. Dagegen hilft ein erneuter regulärer Ausdruck:
Der Suchstring »\n^\s\(tags:.*$« wird hier durch nichts ersetzt – also gelöscht. Kurz und knapp übersetzt such der String nach einer Zeilenschaltung (\n) gefolgt von einem Leerzeichen (\s) am Zeilenanfang (^) und dem anschließenden Text „(tags:“ gefolgt von einer unbestimmten Menge Zeichen (.*) bis zum Zeilenende ($).
Nach einem Klick auf „Replace All“ sollten alle derartigen Vorkommen verschwunden sein und die Datei kann gespeichert werden.
Zusätzlicher Hinweis in Sachen Umlaute. Mister Wong exportiert die Datei zwar mit CONTENT=“… charset=UTF-8″, vom Header des Apachen wird die Datei jedoch als ISO-8859-15 exportiert und demnach bei mir unter Linux auch so auf die Festplatte gebannt. Das führt dazu, dass ohne Nachhilfe die Datei auf dem Mac mit kaputten Umlauten geöffnet wurde. Ich habe leicht Abhilfe schaffen können, indem ich die Datei mit gedit unter Linux geöffnet und mit korrektem UTF-8 Header wieder abgespeichert habe. Wie das anderweitig funktioniert hätte, weiss ich nicht, aber ein kontrollierender Blick auf die Umlaute kann auf keinen Fall schaden. del.icio.us hat sie daraufhin alle korrekt importiert.
Falls jemand noch einen besseren Weg für die Regex-Ersetzung weiß: immer her damit. Das gleiche gilt für Editor-Empfehlungen unter anderen Betriebssystemen. Außerdem habe ich gerade per Twitter erfahren, dass die Bookmarks als „privat“ importiert werden (was mich persönlich erstmal nicht stört). Evtl. weiß ja noch jemand einen Ausweg bzw. einen Weg wie man die nachträglich per ‚mass edit‘ auf public umstellen kann.
Und jetzt viel Erfolg beim wechseln! ;-)
Und noch was: Wer bei del.icio.us schon mal importiert hat, mit dem Ergebnis nicht zufrieden ist und nochmal neu importieren will, kann seine Bookmarks am einfachsten löschen, indem der ganze Account gelöscht und direkt danach neu registriert wird. Das empfiehlt auch die FAQ dort.
[tags]textmate,delicious,mister wong,wechsel,import,export,textmate,regex[/tags]
Schreibe einen Kommentar