Evernote のデータを Obsidian に移行した
去年からノート管理を Obsidian に集約している。これまで Notion、Scrapbox、Evernote など複数のツールに情報が散らばっていたため、それらをすべて一箇所にまとめている最中だ。
Evernote については既に使用を止めていたものの、長年蓄積したデータが残っていた。今回はそれらのデータを Obsidian へ移行した。
Evernote からのエクスポート
まず、Evernote のデスクトップアプリからデータをエクスポートする必要がある。ノートを複数選択してエクスポートする方法か、ノートを内包するノートブックごとエクスポートする方法の 2 つがある。前者には一度に最大 50 件までしか選択できないという制限があるため、ノートブックごとエクスポートするのがおすすめ。
エクスポート中に、いくつかのノートを書き出せない問題に遭遇した。画像が含まれるノートでエラーが発生することが多かった。原因を特定するため Evernote のアプリケーションログも調査したが、具体的な原因は突き止められなかった。それらのノートについては思い切って削除するか、重要なものは手動でコピペした。
Markdown 形式への変換
エクスポートが完了すると、ENEX (Evernote XML file) ファイルが生成される。これを Obsidian で使うために Markdown 形式に変換する。 Obsidian が公式で ENEX ファイルのインポートをサポートしているのだが、今回は evernote2md というツールを使用して変換することにした。
evernote2md
evernote2md は Go で書かれた変換ツール。 GitHub からバイナリをダウンロードして、以下のようにコマンドを実行する:
evernote2md --folders --addFrontMatter notes.enex outputs
上記のコマンドを実行すると、outputs
ディレクトリに Markdown 形式に変換されたテキストファイルや添付ファイル (画像や PDF など) が出力される。このディレクトリを Obsidian の Vault に移動すればいい。
evernote2md のオプションについて
--folders
を指定すると、ノートの名前でディレクトリが作られる。その中にノートの Markdown (README.md
) や、画像などの添付ファイルが保存される。
--folder
を指定した場合、以下のような構造になる:
Notebook A/
├── Note1/
│ ├── image/
│ │ └── Snapshot1.png
│ └── README.md
└── Note2/
├── image/
│ └── Snapshot1.png
└── README.md
--folder
を指定しない場合、以下のような構造になる:
Notebook A/
├── image/
│ └── Snapshot1.png
├── Note1.md
└── Note2.md
指定しないと何が問題になるかというと、現状の evernote2md は、同名の添付ファイルが存在した場合、ファイルを上書きしてしまう。
Evernote アプリで書類などをスキャンすると、Snapshot1.png
とか Snapshot2.png
などのファイル名になるため衝突しやすい。
この問題については evernote2md の Issue でも議論されているが解決していない。このオプションは必ず指定するべき。
--addFrontMatter
を指定すると、Markdown ファイルの先頭にノートのメタデータ (作成日や更新日、タグなど) が Frontmatter 形式で追加されるので情報の整理に役立つ。
---
date: "2017-02-09 09:04:37 +0000"
updated_at: "2017-02-10 10:12:08 +0000"
title: "タイトル"
tags: ["tag1", "tag2"]
source: desktop.mac
---
本文...
まとめ
とりあえず Markdown 形式でデータを持っておけば、コマンドラインツールなどで加工しやすいし、仮に Obsidian が使えなくなっても何とかなると思う。