Bookmark-Umzug: Mister Wong -> del.icio.us

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:

mister_wong_export.html.jpg

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:

Find-replace-regex-textmate.jpg

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:

Find-2.jpg

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]

24 Gedanken zu „Bookmark-Umzug: Mister Wong -> del.icio.us“

  1. Danke für den Artikel, delicious ist aber auch längst noch nicht perfekt. Ich hasse diese Krücke mit dem Account löschen und neu registrieren… des weiteren nervt es einfach, das nach dem Import dort, alle Bookmarks private sind und man sie einzeln freischalten müsste… das kann bei knapp 2100 Lesezeichen etwas dauern ;)

  2. Nachdem in meinem E-Mail-Account gerade eben wieder einer dieser unsäglich nichtssagenden Newsletter von Wong, mit Bookmarks, die mich im Leben nicht interessieren könnten, aufgeschlagen ist, empfinde ich fast schon Freude darüber, wenn wieder einer auf die andere Seite zieht.

  3. Das beschriebene Problem habe ich zwar nicht, da ich gleich mit del.icio.us angefangen habe, aber ich wollte noch einen Editor in den Ring werfen: ConText für Windows, der kann auch reguläre Ausdrücke (und Syntaxhighlighting für eine ganze Reihe Sprachen) und ist umsonst.
    Ausprobiert habe ich das obige Verfahren allerdings nicht mangels Gelegenheit ;-)

  4. PS: bei der Tab-Reihenfolge der Kommentarfelder kommt das „Senden“-Feld vor dem Kommentarabo, weshalb ich nun einen weiteren Kommentar schreiben muss, um zu abonnnieren….

  5. @Dennis: was ist schon perfekt? Vielleicht hast Du ja einen perfekten Tipp?

    @Julia: Danke für den Editoren-Tipp. Evtl. kann’s ja jemand brauchen. Danke für den Hinweis mit den Kommentarfeldern. Die Abogeschichte werd ich mit dem hoffentlich bald folgenden Blogupdate ohnehin etwas anders lösen.

  6. Pingback: Blognews vom 08.02.2008 at Lebensfreude pur
  7. Hallo, das ist eine interessante und sehr ausfühliche Analyse / Erklärung. Hut ab! Es würde mich sehr interessieren ob mein Produkt, oneview, eben solche Formatierungsprobleme beim im. / export verursacht. Wir bemühen uns alles sehr konform und vor allem Kompatibel zu entwickeln und testen entsprechend… aber man weis nie… Über ein ähnliches, hoffentlich positiveres Feedback würden wir / ich mich sehr freuen. Grüsse und Dank, M.

  8. Danke für die Anleitung :) !

    Noch ein paar Anmerkung für diejenigen die das wie ich mit Notepad++ unter Windows erledigen wollen.

    Wenn man die Zeichenfolgen direkt aus diesem Blogbeitrag kopiert und in den Editor überträgt erhält man – ich nenne es mal so – geneigte Anführungszeichen. Diese müssen durch die „normalen“ senkrechten ersetzt werden.

    notepad++ hält sich nicht an die üblichen regex Ausdrücke:
    Die $ Variable funktioniert nicht in notepad++. „$1“ muss mit „1“ ersetzt werden, damit die Ersetzung korrekt durchgeführt wird.

    Den zweiten Teil habe ich nicht mit notepad++ hinbekommen. Wahrscheinlich weil hier wieder eine besondere Syntax genutzt wird. Ich bin dann auf den anderen freien Editor PSPad umgestiegen.

    Dieser verarbeitet auch den ersten regulären Ausdruck anstandslos. Aber bei dem zweiten Teil mit „n^s(tags:.*$“ gab es wieder Probleme. Funktioniert hat in PSPad dann „ns(tags:.*$“ .

    Übrigens wer wie ich vorher schon die Bookmarks von Mister Wong unbearbeitet in Delicious importiert hat, braucht nichts zu löschen. Der erneute Import der Bookmarks der bearbeiteten Datei kann auf Wunsch die vorhandenen Links ersetzten :) .

  9. Ebenfalls ein Danke für den Tipp. Wollte auch schon längere Zeit mit über 450 Lesezeichen umziehen, habe mich aber wegen der o.a. Probleme nicht so recht getraut.

  10. Pingback: Benno Müller » Social Bookmarks von Mister Wong zu del.icio.us portieren

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.