Alte Tomboy-Notizen retten und nach Joplin importieren   Vor kurzem aktualisiert!


Auf einer alten Festplatte liegen noch Tomboy-Notizen aus früheren Linux-Zeiten? Auch wenn Tomboy heute kaum noch genutzt wird, können die .note-Dateien wertvolle Projektnotizen und Erinnerungen enthalten. Ich wollte diese alten Daten retten und in Joplin übernehmen. Der Zwischenschritt: Markdown.

1. Tomboy nach Markdown konvertieren

Dafür gibt es das Python-Skript tomboy2markdown.py. Unter Debian/Ubuntu zunächst die Voraussetzung installieren:

sudo apt install python3 python3-dateutil

Das heruntergeladene Skript liegt im Beispiel unter ~/Scripts/tomboy2markdown.py, die gesicherten Notizen unter ~/Tomboy-Alt/:

mkdir -p ~/Tomboy-Markdown
python3 ~/Scripts/tomboy2markdown.py ~/Tomboy-Alt/ -o ~/Tomboy-Markdown/ -r

2. Wenn alte Notizen einen XML-Fehler auslösen

Bei meinen alten Dateien stoppte die Konvertierung mit der Meldung:

xml.sax._exceptions.SAXParseException:
reference to invalid character number

Ursache war unter anderem die Zeichenreferenz  in Tomboy-Dateien. Sie steht für das Steuerzeichen „Backspace“, das in XML 1.0 nicht zulässig ist. Die Meldungen über übersprungene Notizbuchvorlagen sind dagegen normal.

3. Sicherheitskopie erstellen und die betroffenen Dateien bereinigen

Wichtig: Zuerst die Originaldateien sichern; die folgenden Befehle verändern die Arbeitskopie.

cp -a ~/Tomboy-Alt ~/Tomboy-Backup

Wie viele Dateien die problematische Referenz enthalten, zeigt:

grep -rl '' ~/Tomboy-Alt --include='*.note' | wc -l

Für diesen konkreten Fehler kann man  durch den gültigen XML-Zeilenumbruch 
 ersetzen:

find ~/Tomboy-Alt -type f -name '*.note' \
  -exec sed -i 's//\
/g' {} +

Das ist eine pragmatische Reparatur, keine exakte Rekonstruktion der ursprünglichen Formatierung. Andere XML-Fehler werden dadurch nicht behoben.

4. Erneut konvertieren und in Joplin importieren

python3 ~/Scripts/tomboy2markdown.py ~/Tomboy-Alt/ -o ~/Tomboy-Markdown/ -r

Danach in Joplin Datei → Importieren → MD – Markdown (Verzeichnis) wählen und ~/Tomboy-Markdown/ auswählen.

Zur Kontrolle lohnt sich ein Vergleich der Dateianzahlen:

find ~/Tomboy-Alt -name '*.note' | wc -l
find ~/Tomboy-Markdown -name '*.md' | wc -l

Die Zahlen müssen nicht identisch sein, weil der Konverter etwa Notizvorlagen überspringt. Außerdem sollten einige Notizen stichprobenartig geprüft werden: Interne Tomboy-Links, Tags und ursprüngliche Zeitstempel werden beim normalen Markdown-Import nicht unbedingt als Joplin-Metadaten übernommen.

Links: tomboy2markdown.py · Joplin: Import und Export