複数端末でBoostnoteデータを同期するオレオレ手順

# **注意**

**(2016/08/01 追記)**
本記事は、Boostnoteバージョン0.5系の時点で書いたもので、バージョン0.6系以降では有用ではありません。


バージョン0.6系では、ローカルの固定ディレクトリにデータファイルを保存するのではなく、ユーザーが任意の保存先を指定(ストレージ管理)できるように変更されています。
なので、以降はコマンドラインでシンボリックリンクの作成等は不要になり、アプリ内で保存先をオンラインストレージに指定するだけで同期できるようになるかと思います。


# **はじめに**

近頃Markdownで文章を書く機会が増えて、ちょっとしたメモもMarkdownで書きたいと思ったので、[エンジニアにお勧めしたいメモアプリ5選](https://geechs-magazine.com/tag/lifehack/20160113) を参考にメモアプリを色々試してみた。

結果的にはフォルダ管理機能が便利・シンタックスハイライトが綺麗という理由で [Boostnote](https://b00st.io/jp/) が一番しっくり。ただ、データをローカルに保存するため、複数端末でデータが同期できないのが不便だったので、オンラインストレージ経由で同期するようにしてみた手順を書きます。


**※ 非公式の方法なので、試す場合は自己責任でお願いします。**
**※ 複数端末で同時に編集すると、競合が起きて同期エラーになりそうな気がするので、同時に編集しない方が良さそう。**


# **前提**

- 各端末にDropboxやGoogleドライブなどのオンラインストレージのデスクトップ版アプリがインストールされている必要あり。

- オンラインストレージのデータディレクトリは以下。Dropbox、Googleドライブの場合。(他のオンラインストレージは不明)

|    | Mac     | Windows  |
|----|---------|----------|
| Dropbox | ~/Dropbox | %USERPROFILE%\Dropbox |
| Googleドライブ | ~/Google ドライブ | %USERPROFILE%\Google ドライブ |
- ローカルに保存されているBoostnoteのデータファイルのパスは以下。

|    | Mac     | Windows  |
|:----|:---------|:----------|
| フォント設定など | ~/Library/Application Support/boost/config.json | %USERPROFILE%\AppData\Roaming\boost\config.json |
| メモデータなど | ~/Library/Application Support/boost/local.json | %USERPROFILE%\AppData\Roaming\boost\local.json |

(%USERPROFILE% はシステム環境変数。"C:\Users\ユーザー名"などが割り当てられる)


# **手順**

フォント設定などは各端末で別々にしたい場合は、local.jsonだけ同期する。

## **ベースにするデータがある端末での操作**

#### **1. Boostnoteを終了(プロセスリストにないことを確認)**

#### **2. ローカルのデータファイルを、オンラインストレージのディレクトリに移動**

Macの場合

```dummy:ターミナル
mv "~/Library/Application Support/boost/config.json" "~/<オンラインストレージアプリ内の保存ディレクトリ>/config.json"
mv "~/Library/Application Support/boost/local.json"  "~/<オンラインストレージアプリ内の保存ディレクトリ>/local.json"
```

Windowsの場合

```dummy:コマンドプロンプト(管理者として実行)
move "%USERPROFILE%\AppData\Roaming\boost\config.json" "%USERPROFILE%\<オンラインストレージアプリ内の保存ディレクトリ>\config.json"
move "%USERPROFILE%\AppData\Roaming\boost\local.json"  "%USERPROFILE%\<オンラインストレージアプリ内の保存ディレクトリ>\local.json"
```
#### **3. シンボリックリンクを作成**

Macの場合

```dummy:ターミナル
ln -s "~/<オンラインストレージアプリ内の保存ディレクトリ>/config.json" "~/Library/Application Support/boost/config.json"
ln -s "~/<オンラインストレージアプリ内の保存ディレクトリ>/local.json"  "~/Library/Application Support/boost/local.json"
```

Windowsの場合

```dummy:コマンドプロンプト(管理者として実行)
mklink "%USERPROFILE%\AppData\Roaming\boost\config.json" "%USERPROFILE%\<オンラインストレージアプリ内の保存ディレクトリ>\config.json"
mklink "%USERPROFILE%\AppData\Roaming\boost\local.json"  "%USERPROFILE%\<オンラインストレージアプリ内の保存ディレクトリ>\local.json"
```

Windowsでシンボリックリンクは作成できないと思ってたけど調べてみたらできることが判明。知らんかった！

- http://www.atmarkit.co.jp/ait/articles/1306/07/news111.html
- http://dev.classmethod.jp/etc/make_windows_symbolic_link/

#### **4. Boostnoteを起動して、メモが正しく表示されることを確認**


## **その他の端末での操作**

#### **1. オンラインストレージのディレクトリに、上記のBoostnoteのデータファイルが同期されているのを確認**

#### **2. Boostnoteを終了(プロセスリストにないことを確認)**

#### **3. ローカルのデータファイルを適当な名前にリネーム(または削除)**

Macの場合

```dummy:ターミナル
mv "~/Library/Application Support/boost/config.json" "~/Library/Application Support/boost/config.json_bk"
mv "~/Library/Application Support/boost/local.json"  "~/Library/Application Support/boost/local.json_bk"
```

Windowsの場合

```dummy:コマンドプロンプト(管理者として実行)
move "%USERPROFILE%\AppData\Roaming\boost\config.json" "%USERPROFILE%\AppData\Roaming\boost\config.json_bk"
move "%USERPROFILE%\AppData\Roaming\boost\local.json"  "%USERPROFILE%\AppData\Roaming\boost\local.json_bk"
```
#### **4. シンボリックリンクを作成**

Macの場合

```dummy:ターミナル
ln -s "~/<オンラインストレージアプリ内の保存ディレクトリ>/config.json" "~/Library/Application Support/boost/config.json"
ln -s "~/<オンラインストレージアプリ内の保存ディレクトリ>/local.json"  "~/Library/Application Support/boost/local.json"
```

Windowsの場合

```dummy:コマンドプロンプト(管理者として実行)
mklink "%USERPROFILE%\AppData\Roaming\boost\config.json" "%USERPROFILE%\<オンラインストレージアプリ内の保存ディレクトリ>\config.json"
mklink "%USERPROFILE%\AppData\Roaming\boost\local.json"  "%USERPROFILE%\<オンラインストレージアプリ内の保存ディレクトリ>\local.json"
```

#### **5. Boostnoteを起動して、同期されたメモが表示されることを確認**


# **おまけ**

この記事がBoostnote公式Twitterで「Great work!! :rocket: 」と紹介されていました。ありがとうございます。

https://twitter.com/Boostnoteapp/status/718381647922622464