Standard Notes から Joplin へ移行する
ノートアプリ、お使いでしょうか。このジャンルでは Evernote が最も有名だと思いますが、2016 年に同ソフトの無料プランの制限が厳しくなったり、有料プランの値上がりがあったりということもあり[1]、他のソフトを使用していました。そのソフトが Standard Notes で、無料ながら Markdown でノートが書け、PC, Mac, Android, iOS に加え WEB 上でも編集可能ということで、数年間お世話になりました。現在でも基本的な機能面に不満はないのですが、Evernote のように画像や PDF を添付したり、LaTeX の数式を表示したり、プログラムのコードをハイライトさせたりという用途では有料プランが必要となってしまいます[2]。長期間利用の割引に加えてブラックフライデーの割引を使えばかなり安くなりますが、結局無料プランのまま使用していました。
Joplin は明らかに Evernote を意識して作製されたノートアプリで、上に挙げた Standard Notes の有料機能が 全て無料 で使用できます。加えて基本は Markdown であるため、テキストベースでサクサクメモしたい筆者には願ってもないソフトでした。
移行ツールの問題点
Joplin の公式ページには Standard Notes から Joplin へ移行する方法が書かれています。紹介されているページ[3]では Python3 を使って Evernote の形式(.enex)を経由する方法が用いられていますが、どうやら ノートの日付が保持されない問題がある らしく、他の方によって解決法が示されています[4]。ところが、この方法でも、タイトルに '<' や '>’ などの文字が含まれている場合、Joplin へのインポート時にフリーズしてしまう問題がありました。
解決法
原因は '<' や '>’ などの文字が HTML や XML でタグ制御用に用いられる文字であり、それらの文字がそのままテキスト中に含まれているとタグ制御詞だと解釈されるためです。移行ツールのプログラムでは改行コード(\n)を HTML の改行タグ(<br>)に置換して対策していることもあり、ここに '<' や '>’ の文字も置換するように以下の行を追加しました。
temp_text = temp_text.replace('<', '<')
temp_text = temp_text.replace('>', '>')
temp_text = temp_text.replace('&', '&')
(ソースは以下からダウンロードできます。)
使い方
1. Standard Notes からノートをエクスポート
Standard Notes を起動し(WEB版でも可)、画面左下の “Account" より “Data Archives" を “Decrypted" に変更して “Download Backup" ボタンからノートをダウンロードします。すると、.txt ファイルと .zip ファイルの2つのファイルがダウンロードされるはずです。今回は、この2つのうち .txt ファイルを使用します。
2. Python のプログラムで Evernote の形式(.enex)へ変換
上で紹介している Python のプログラムを使って、ダウンロードした .txt ファイルを Evernoteの形式(.enex)へ変換します。Python のプログラムと .txt ファイルが同じディレクトリにあれば、
python SN_to_Joplin.py TXT_FILE
で notes.enex が生成されるはずです。(TXT_FILE はダウンロードした .txt ファイルのことです。各自で置き換えてください。) 画面上に
cnt : 979
のような表示が現れますが、これは処理したノート数です。Standard Notes でエクスポートしたノート数と数が合っているか確認してください。
3. Joplin へインポート
作成した notes.enex を Joplin へインポートします。Joplin を起動し、"File" > “Import Evernote notes" で notes.enex を指定すればインポートが始まるはずです。念のため、ここでもインポートされたノート数が Standard Notes でエクスポートしたノート数と一致しているか確認することをおすすめします。
これで問題なくJoplinへインポートすることができました。
ディスカッション
コメント一覧
まだ、コメントがありません