はじめに
今年の2月に情報を Evernote に集約し始めて早8ヶ月が経ちました。
その際に書いた記事が以下になります。
ですが、最近の Evernote の動きが少し気になります。
- 2022年11月: EvernoteをイタリアIT企業が買収 「製品は存続」 - ITmedia NEWS
- 2023年04月: Evernote の価格プラン改定と今後の機能強化に関するお知らせ
- 2023年07月: Evernote、米国とチリの従業員をほぼ全員解雇 欧州への事業移管で - ITmedia NEWS
昨年の買収はともかく、値上げ後にアメリカとチリの従業員をほぼ全員解雇というのは、企業が存続するのか不安が大きくなりました。
Evernote は元々パフォーマンスに問題がありますが機能的には十分であるので有料プランを使っていましたが、移行の検討をはじめました。
- はじめに
- Evernote の移行先の検討
- Obsidian で情報蓄積して活用する
- Evernote から Obsidian 移行後の完成形
- 情報蓄積と活用のために自作したツール
- Evernote から Obsidian への移行
- おわりに
Evernote の移行先の検討
Evernote の移行先候補として以下のものがありますが、どれも自分の用途には合いませんでした。
- OneNote (Microsoft)
- Notion
- UpNote
- Simple Note
自分がやりたいのは、単純にネット上の記事をタグを付けて Web クリップ(保存)して検索するだけなのですが、そういうサービスが全然ありません。
Web クリップがあるサービスでも、機能が貧弱すぎて使えないレベルでした。
ここまで使えるツールがないのであれば、自作するしかないかな?と思っていたところで着目したのが Obsidian でした。
Obsidian で情報蓄積して活用する
元々、Obsidian を Markdown エディタとして使っていたのですが、Obsidian にはタグ機能があり、検索機能も結構強いです。また、プラグインを開発して公開する仕組みもあります。
この仕組みはすばらしく、また普段使っているブラウザの Firefox も拡張機能を公開する仕組みがあるので、足りないところは自作することにしました。
Evernote から Obsidian 移行後の完成形
試行錯誤した結果、以下を移行後の完成形としました。
パソコン
- Web ページ -> Web クリップ -> Obsidian に保存
- Obsidian Sync 経由で他の環境の Markdown を同期
- Obsidian の Markdown -> Media Sync で画像やPDF をダウンロード
- Obsidian の全ファイルを定期的に OneDrive 上にバックアップ
タブレット/スマートフォン
- Web ページ -> Web クリップ -> Obsidian に保存
- Obsidian Sync 経由で他の環境の Markdown を同期
- 画像/PDF ファイルは同期しない
情報蓄積と活用のために自作したツール
Firefox 拡張機能
Web ページを Markdown として保存するために、Firefox 拡張機能の WebClip Markdown for Obsidian を作成して公開しました。
ソースコードは以下で公開しています。
拡張機能をインストール後、ツールバーのアイコンをクリックすると以下の画面が表示されます。
Select article range
を選択している状態だと、Web ページの記事と思われる部分を以下のように青い枠線で選択します。
この際、+
や -
ボタンをクリックすると選択範囲を変更できます。
Select all
を選択すると Web ページ全体を選択し、 Bookmark
を選択すると Web ページの選択は解除されます。
Vault
には Obsidian の Vault 名、Default folder
には Obsidian のフォルダを指定できます。画像のように /
を付けると、Obsidian のサブフォルダが指定可能です。
Tags
には保存した記事に付けるタグを入力します。後ほど設定方法を記載しますが、登録済みのタグがオートコンプリートで表示されます。
Comment
に記事に関するコメントを入力します。
最初の画像の状態で Clip
をクリックすると、Obsidian が表示されて、以下のように記事の内容が Markdown 形式で保存されます。もちろん、保存後にタグやコメントの内容も修正可能です。
これだけでもある程度使えますが、設定を変えるとさらに使いやすくなります。
Default tags
に設定した内容は、クリップ画面表示の際、タグに初期設定されます。
Autocomplete
では、タグのオートコンプリートを有効にするか、そして使用したタグを学習するか設定できます。
Enable autocomplete
にチェックを入れると、以下のようにオートコンプリートが動作するようになります。
Dictionary tags
は、タグの辞書機能です。ここでオートコンプリートするタグを管理できます。
Skip stylesheet classes settings
は特殊な設定なので詳細は省きますが、Web ページごとに Markdown として保存しない要素(スタイルシートのクラス名)を指定できます。
ブックマークレットと iOS ショートカット
Web ページをクリップするのはパソコンだけに限らないので、ブックマークレットと iOS のショートカットを作成して Firefox 拡張機能のページで公開しました。
ブックマークレットは bookmarklet.js
、iOS のショートカットは ios-shortcut.js
を使用します。
使用方法は、README を確認してください。
なお、ブックマークレットは、Mac 上の Safari, Google Chrome, Firefox で動作確認してます。Microsoft Edge については、全画面(isFullPage = true)の時のみ動作します。
Obsidian プラグイン
Obsidian プラグインとして、Media Sync
と Merge Notes
を作成して公開しました。
Obsidian の Community plugins
から検索で見つけられます。
ソースコードは以下で公開しています。
- fnya/media-sync: Media Sync is Plugin for Obsidian
- fnya/merge-notes: Merge Notes is Plugin for Obsidian
Media Sync
は、Web クリップした Web ページに含まれる画像と PDF ファイルをローカルにダウンロードするプラグインです。Web ページは、結構すぐになくなるのでこのプラグインを作成しました。
Merge Notes
は、選択した複数の Markdown ファイルを1つにまとめるためのプラグインです。マージ機能はありそうでなかったので作成しました。
それぞれの使用方法は、README を確認してください。
Evernote から Obsidian への移行
Evernote から Obsidian へどのように移行するかというと、この後の手順を踏めば比較的うまくいくと思います。
注意点としては、Obsidian で大量のインデックス再構築を行う状態にすると固まってしまい何もできなくなることです。
Obsidian での Evernote ファイルの取り込みは、面倒でも分割して行うのがよいかと思います。
Evernote での事前準備
Obsidian では以下のようなタグがサポートされないので、事前に Evernote で変換をかけておく必要があります。
- 数値のみのタグ (ex)2023 -> 2023年
- スペースを含むタグ (ex)Microsoft Azure -> MicrosoftAzure
- サポートされない記号を含むタグ (ex).NET -> dotNet
これ以外にも条件はあるかもしれませんが、自分が直面したのはこのくらいです。
ものによってはそのまま Obisidan に取り込めますが、後で使えなかったり、一覧に表示されなかったり不便なので対応しておくとよいかと思います。
Evernote からノートブックをエクスポート
Evernote からノートブックを ENEX 形式(.enex)
でエクスポートします。
体感的には 200
から 300
件程度で分割すると、Obisidian でインポートエラーが出にくかったように感じます。
自分は 7,000 件超えだったので、非常に時間がかかりました。。
Obsidian で必要なプラグインをインストールする
Obsidian で以下のプラグインをインストールします。
Importer
は Obsidian の中の人が作ったプラグインで、Evernote のノートブックをインポートできます。
File Exporter Note Count
は、以下のように Markdown ファイルの件数を表示するプラグインです。
Media Sync
と Merge Notes
は、すでに説明したので省略します。
Tag Wrangler
は、タグ名を一括変換したりできるプラグインです。
TagFolder
は、以下のようなタグのエクスプローラーで、タグによる分析が可能になります。
Obsidian に Evernote のノートブックをインポート
Obsidian の画面左のメニューから、下記アイコンをクリックします。
ダイアログが表示されるので、以下のように設定して Import
をクリックします。
この際、Evernote
が Output folder
に設定されていますが、Evernote
がインポート後のルートフォルダになります。
Output folder
は省略可能で既存フォルダも指定可能です。
インポートが完了したら、Done
をクリックします。
先ほどの設定だと、以下のようにインポートされます。
バックアップ
この後の作業で問題が出てもよいようにバックアップを行います。
今回は、以下のようなシェルを作成して OneDrive 上に Zip ファイルを保存しました。
#!/bin/bash # 定義 FOLDER_PATH="/path/to/Obsidian" # obsidianフォルダのパスを指定 ZIP_NAME="$(date +%Y-%m-%d)_obsidian.zip" # ZIPファイル名を指定 ONEDRIVE_PATH="/path/to/OneDrive" # OneDriveフォルダのパスを指定 echo "backup start $(date +%Y-%m-%d-%H:%M:%S)" # obsidianフォルダをzip化 zip -r -qq "$ONEDRIVE_PATH/$ZIP_NAME" "$FOLDER_PATH" echo "backup end $(date +%Y-%m-%d-%H:%M:%S)" # 7日より前のZIPファイルを削除 # find "$ONEDRIVE_PATH" -name "*_obsidian.zip" -mtime +5 -exec rm {} +
このままだと不便なので、シェルを、~/backup.sh
に保存してバックアップを定期的に実行するようにします。
~/Library/LaunchAgents
に org.backup.plist
というファイルを以下の内容で作成します。AM 5:00 に ~/backup.sh
を実行する設定になります。パスは、適宜修正してください。
Mac の launchd は、cron とは異なり、Mac がスリープしている状態でも実行されます。
<?xml version=”1.0″ encoding=”UTF-8″?> <!DOCTYPE plist PUBLIC “-//Apple//DTD PLIST 1.0//EN” “http://www.apple.com/DTDs/PropertyList-1.0.dtd”> <plist version=”1.0″> <dict> <key>Label</key> <string>org.backup</string> <key>ProgramArguments</key> <array> <string>/bin/bash</string> <string>/Users/USERNAME/backup.sh</string> </array> <key>RunAtLoad</key> <true/> <key>StandardErrorPath</key> <string>/Users/USERNAME/backup.log</string> <key>StandardOutPath</key> <string>/Users/USERNAME/backup.log</string> <key>StartCalendarInterval</key> <dict> <key>Hour</key> <integer>5</integer> <key>Minute</key> <integer>0</integer> </dict> </dict> </plist>
設定を有効にします。
$ launchctl load ~/Library/LaunchAgents/org.backup.plist
設定を無効にする場合は、以下のコマンドを実行します。
$ launchctl unload ~/Library/LaunchAgents/org.backup.plist
なお、Operation not permitted
のエラーが出る場合は、下記記事を参考に bash にフルディスクアクセスの権限を付与してください。
Sync 設定
Web クリップは、パソコンだけでなくタブレットやスマートフォンでも行います。
ですので、Obsidian の有料サービスである Sync を利用します。
Sync は月契約だと $10/月
で、年契約だと $8/月
になります。
ただ、残念なのが 10GB
しか使えないのですよね。。
いろいろ調べても他に有効な手段がなかったので、画像の同期を行わないで Sync を利用することにしました。
ちなみに、Obsidian の Vault を iCloud に作成する方法もあるようですが、自分の使い方ではうまくいきませんでした。
あと、OneDrive 上に Obsidian の Vault を作成した状態で Sync を有効にすると、OneDrive 上で禁止されているファイル名を Sync が使用するらしくエラーが頻発するのでご注意ください。
Media Sync の実行
一通り設定が終わったら、 Media Sync
を実行して画像と PDF ファイルをローカルにダウンロードします。
ただ、7,000 以上も Evernote のノートがあったためか、パソコンを起動したままで3日ほど時間がかかりました。
おわりに
Obsidian ですべてがうまく行っている訳ではありませんが、Evernote よりは情報蓄積や活用が効率よくなりました。
あと、Obsidian は単なる Markdown ファイルなので、Obsidian に最悪何かあっても対処が可能というのも大きいですね。
しばらくは Evernote と Obsidian の並行稼働を続けて行き、目処が立ったら切り替えようかと思います。