memorandums

日々の生活で問題解決したこと、知ってよかったことなどを自分が思い出すために記録しています。

JoplinからObsidianへ移行してみる(Mac & Android)


🔳2023/12/20追記 Joplinに戻しました。理由は以下に書いています。参考にしてください。 memorandums.hatenablog.com


前フリ

以下のログを見ると2年前にNotionからJoplinに移行して使い始めたようです。

memorandums.hatenablog.com

Joplinを2年使用してきたわけですが。使用感としては、Markdownでメモを書く必要があってちょっと戸惑ったのですがMardownを普段使いするきっかけになってとても良かったですし、基本的な機能も十分に満足していましたし、同期も干渉制御もちゃんとされていて困ることはなかったです。

ただ、どうも「固い」んですよね。。。固いという表現が正しいかわかりませんが古いとも感じます。NotionがVSCodeなら、Joplinはメモ帳という感じです。機能ではなくUI的にです。

ふとNotionに戻そうかと思いました。NotionのUIは素晴らしかったですからね。。。特に出たての頃は。使う気にさせてくれます。

ただ、JoplinからのNotionへのインポートは公式では対応していないようで、Markdown形式やHTML形式で移行してもうまくできるのかわかりませんでした(先人も見つけられませんでした)。

そこで、ノートサービスで他に選択肢はないかな。。。とググっていたら、以前、少しだけ使ったことがあるObsidianを使い始めたという方を見かけました。特に私と同じくJoplinから乗り換えた、という方が目立ちました。少し調べると、Obsidianは使い心地としてはかなり評価が高いようです。ただ、デバイス間の同期の設定が面倒と書かれている記事がありました。せっかくなので、とりあえずやってみることにしました。

obsidian.md

移行操作

私の使用環境ですが、パソコンはMacで、スマホAndroidです。それぞれにObsidianのアプリをいれてメモを同期させて使えたらいいな、ということです。

まず、 Joplinからノートをエクスポートします。これは簡単でした。MacでJoplinを起動して、File - Export All - MD Markdown + Matter を選択します。

JpolinではMarkdownでノートを作成しているはずなので、それぞれのノートがmdファイルとしてディレクトリに出力されます(もともとmdファイルなんでしょうけどね)。さらにノートのディレクトリと同じディレクトリに_resourcesというディレクトリが生成されます。これは各ノートの添付ファイルがまとめて格納されたディレクトリのようです。あとで、Obsidianにインポートするときにはノートのディレクトリの他にこのディレクトリも一緒にインポートする必要があります。

続いてMacAndroidにそれぞれObsidianのアプリを入れます。

Obsidianを起動するとVaultの位置をどこにする?と聞いてきます。VaultというのはObsidianがノートファイルを保管するトップディレクトリのことのようです。Dropboxのようにマシンに1つ設定するという考えではなく、複数のディレクトリを切り替えて使うことも想定しているようです。そのため、Obsidianアプリを起動している最中にVaultを簡単に切り替えられるようになっています。

この切り替え方が最初よくわからなかったので絵を載せておきますね。

Macの場合は以下の矢印のアイコンを押すと切り替えられます。

Androidの場合は以下です。

Obsidianの操作はまだよくわかっていません。とりあえず、それぞれにアプリをいれてVaultさえ設定すればMacAndroidで独立してノートを作成して管理することができます。

で、問題はここからですね。

複数のデバイスでノートを同期させたいのです。

「obsidian 同期」でググると、先人がたくさん記録を残してくれていることがわかります。いずれも今年に入ってからの記事が多いですね。ここでは僕が必要な分だけメモしておきます。特にハマったところを最後に書いています。

まず、ノートを同期させるにはObsidianにプラグインをインストールするようです。同期には他にも色々と先人がトライしていますが、今現在はこのプラグインを使えば難しいことはしなくていいようです。

なお、Obsidianのプラグインには公式のものとコミュニティのものがあるようです。追加するRemotely Saveというプラグインは有志の方が開発したコミュニティのものです。

インストール方法と設定方法は以下を参考にしました。そちらを読んでプラグインをインストールして必要な設定をしてください。

note.com

基本的な設定をしたあと。

Obsidianアプリ内で1つノートを作成し、そのMarkdownファイルがDropBoxのアプリフォルダ内に同期されることを確認しましょう。これができればまず設定はOKと思います。

その後、AndroidのObsidianアプリの設定をします。Android側でもノートを作成して同期されることを確認しましょう。相互にファイルが同期できればもう設定は大丈夫ですね。

このあと、一番最初にJoplinからエクスポートした、MDディレクトリと_resourcesディレクトリをVaultのディレクトリに移動します。手動で同期するアイコンが左のメニューの一番下(戻るボタンみたいなアイコン)ありますので押すと同期が始まります。僕はノートが4千くらいあったのですが同期に20分くらいかかったような気がします。

とりあえず、いつでも戻れるようにJoplinはそのままにしてObsidianを使ってみたいと思います。

他の方が書いていましたが、 Dropboxは無料アカウントだと3台までしか同期できませんが、このプラグインDropboxアプリを入れる必要がないのでカウント外になるようです。Obsidianのアプリをあちこちにいれても問題なさそうな感じです。

でわでわ。新しいアプリはやはり楽しいですね👌

ちょい追記

Obsidianでノートを作ってそこに添付ファイルを入れるときに保存フォルダを指定しないとノートと同じ場所に添付ファイルも置かれてしまいます。これは一長一短かと。全部見えているのは安心ではありますがノートだけみたいのに添付ファイルがまざると見にくいという難点もあります。僕はObsidianの設定からFiles & Linksを選択し、Default location for new attachmentsを「In the folder specified below」にして、Vaultのトップにattachmentsというディレクトリに保存するように指定しました。これも良し悪しで、フォルダごとに添付ファイルを保存するディレクトリをおく選択肢もある(In subfloder in the current folder)ようです。僕は1箇所にまとめたかったのでこうしました。もちろん、この設定もMacAndroidで同じにしないとうまく同期できないはずなので注意が必要ですね。。。これはちょっとめんどうですね。

同期がね。。。不安定ですね。。。ファイルはちゃんと同期するようなんですが、Obsidianのエクスプローラ上には反映されなかったり。。。でもノートでは添付ファイルがみれたり、どうなっているのかわかりませんが。ちょっと気持ち悪いです。

同期設定手順

上記にMacAndroidの同期設定方法を書いたのですが。。。実は全然うまくいきませんでした。まだ試行中です。翌日、追記、とりあえずMac-Dropbox-Androidで同期が完了しました状況をつかめたら再度まとめるつもりです(時間があれば。。。ですが)。ポイントは以下の通りです。

MacAndroidDropboxもJoplinからの移行も、あれもこれも一緒にやろうとしたのがまず間違いでした。そのように上記では書いていますが(紛らわしいところは見え消し、または消しました)。以下、とりあえずまずやるべきことを書いておきます。忘れないうちに。

  • まず、Macのみで作業します。MacDropboxアプリを終了(もしくは同期を一時停止)してMacDropboxの同期を停止しておきます。これはObsidianの同期プラグインDropboxの同期動作がかぶってしまってわけがわからなくなることをまず避けるためです。

  • MacのJoplinアプリでJoplinのノートをエクスポートしておきます(操作は上記に書きました)。エクスポートしたディレクトリを整理しておきます。具体的にはフォルダ名が_で始まると同期されないので_を除外します。フォルダの階層をいじるのは Obsidianにインポートしてからやります(添付ファイルとのリンクを維持するため)。_resourcesディレクトリも含め、エクスポートしたディレクトリをすべて、Vaultのディレクトリに入れます。

  • MacにObsidianアプリをインストールします。

  • MacのObsidianアプリを起動します。JoplinのノートがObsidianのエクスプローラに表示されるはずです。ここで、必要であれば、フォルダの親子関係などを整理します。僕は_resourcesディレクトリが見えるのが嫌だったのであるフォルダの中に入れました。あと名前もattachments_joplinと変更しました。変更やパスを変名しても追従するようにMarkdown内のリンクをObsidianが更新してくれるようです。

  • Obsidian上でファイルの整理が完了したら、Remotely Saveのプラグインをインストールします。DropboxのAuthをして同期します。このときにRemotely Saveのプラグインの自動同期の設定はすべてオフ(デフォルト)にしておきます。

  • この状態で、Obsidianの左メニューにある(上記に図を挙げておきました)Remotely Saveボタン(ブラウザの戻るボタンのようなマーク)を押します。この操作の前にObsidianのメニューのView - Toggle Developer Toolsを押してコンソールを表示しておきます(⌘ + Option + Iでも可)。さらに、Remotely SaveのメニューでAlter Console LevelをInfoからDebugに変えておきます。これで、同期の様子が確認できます(←これ、とても重要です。同期で問題があればログに表示されます。そのエラーを解消しないといつまでも同期のリトライが発生します。具体的にはファイル名に絵文字が入っていると同期に失敗します。ファイル名を変えてもなぜかリトライし続けます。とりあえず絵文字を含んだファイル以外をすべて同期完了したあとに、Remotely Saveを一度削除して再度インストールするとうまくいきました

  • これでMacDropboxの同期フォルダが完全に同期したことをコンソールで確認してからAndroidの設定にはいればうまくいくと思います。この辺のデバッグ方法は、 Remotely Saveのリポジトリにドキュメントがあります。そちらを読んでください。

github.com

これでうまくいったらいいなぁ。。。明日は早い、早くねよ。 とりあえずうまくいきました。

Remotely Saveのドキュメントにも書かれていますが、干渉制御はしていません。同期もなかなか不完全のようです。なので、Remotely Saveの自動同期(定期実行&起動時実行)はすべてDisableにしました(手動で確認しながらかなと)。iPadにもObsidianを入れたのですが、同期漏れが怖いのでMacAndroidだけにしました。

とりあえず少し使ってみようと思います。