Joplin ことはじめ

## Joplin とは
[Joplin](https://github.com/laurent22/joplin) はオープンソースのメモ＆TODO アプリ:clipboard:。
データは **Markdown ＋ 独自メタ情報** で管理。
Evernote(enex データ) からの移行がかんたんそう。
クライアントアプリも、Windows, Linux, macOS, Android and iOS とマルチプラットフォームに対応。
Firefox や Chrome の WEB クリッププラグインもある。

## Quiver からの移行理由
[１年くらい前に Quiver が気に入って移行した](https://qiita.com/isann_tech/items/67a09c839412142ca7f6) のだけれども、
１年ほどつかって色々気になることがでてきた。

中でもクリティカルなのが、
**同期設定として使っていた Dropbox で、フリーの Basic アカウントがリンクできるデバイスが３台に制限された**ことにより、同期する方法がなくなったこと:angry:

> ### アカウントにリンクできるデバイス数に制限はありますか？
> 
> 2019 年 3 月より、Basic ユーザーがリンクできるデバイスは 3 台までとなります。

[Dropbox アカウントには何台のデバイスをリンクできますか？ | Dropbox ヘルプ](https://help.dropbox.com/ja-jp/accounts-billing/settings-sign-in/computer-limit) より

参考： [Dropbox、無料版のアクセス端末を3台までにひっそり制限 - ITmedia NEWS](https://www.itmedia.co.jp/news/articles/1903/15/news081.html)

これによって Quiver の同期に Dropbox という選択肢が難しくなり、
**WebDAV** への移行を考えた。
（セルフホスティングの Web サーバがあるから）

しかし、 **Quiver で WebDAV とうまく同期ができない。**
使ってるのは Apache の WebDAV で設定はふつう。
Finder に WebDAV をマウントしてそのパスを Quiver で参照させてるのがマズイのだと思うのだけれども、
それ以外で WebDAV に設定する方法がわからず。
諦めるに至った:cry:


## Quiver からの移行作業
そういうわけで、Quiver から Joplin への移行、
テキストはかんたんだけど、イメージまわりがややこしい。

テキストについてはエクスポートしたフォルダを Joplin で Markdown（ディレクトリ）をインポートする。
これだけ。
**ただし、タグは諦めている。**
Joplin で検索がわりとちゃんと動作するから。

イメージのほうは、 **Quiver からエクスポートした画像を Web サーバにアップして、リモートで参照することになる。**


Quiver は Markdown エクスポートすると、**resources フォルダ**に画像がまとまっている。
この ID は Quiver 内で一意なので**画像はまとめて Web の特定ディレクトリにアップ**する。
**BasicAuth をかけると Joplin からの参照がうまくいかないので Public にするしかない。**
Public なため、 Secure or Private な画像はアップしないようにしよう。
Markdown 内でそのホストへのリモート参照で画像はうまく表示される。

たとえば、Quiver から md で出力すると画像へのリンクはこうなる。

```
![スクリーンショット 2019-01-09 2.14.42.png](resources/XXXXXXXX.png =1354x974)
```

↑
この該当ファイルを Web に事前にアップしておく。

```
![スクリーンショット 2019-01-09 2.14.42.png](https://foobar/path/to/XXXXXXXX.png)
```

↑
こうすると参照できるようになる。

あとは、 Joplin のデータファイル（MD）に対して直接置換する。
置換するデータファイルは、Joplin で同期先として設定している WebDAV サーバにあるもの。
WebDAV のルート以下に Joplin のアプリケーションルートがあり、そこに md ファイルがあるのでこれが作業対象。

```bash
# Backup
$ cp -r Joplin JoplinBK
$ cd Joplin

# Replace text
$ grep -rl --include="*.md" . | xargs sed -i "s|(resources/|(https://foobar/path/to/|g"
$ grep -rl --include="*.md" . | xargs sed -i "s| =[0-9]\+x[0-9]\+||g"

# Update meta info
$ grep -rl --include="*.md" . | xargs sed -i "s|updated_time:.*Z|updated_time: 2019-12-23T16:14:15.257Z|g"
$ chown apache:apache -R .
```

↑
こんなかんじ。

`updated_time` を更新しないと、 Joplin はローカルファイルを更新してくれないので、適当な未来日時に変更すること。
それから、ついでにファイルのアクセス権限もチェックしておくこと。
WebDAV とかなら `apache:apache` とか。

![スクリーンショット 2019-12-28 16.37.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/34022/bfd49ae0-7908-5950-9771-f8facb3599c2.png)

↑
Joplin の記事ページ。
いいかんじ:relaxed:


## どうでもいいこと
Joplin はほとんどプレーンな Markdown なので、次に移行が必要になってもなんとかなるんじゃないかなと思ってる。
また、Joplin 自体の開発はそこそこ盛んなので安心感がある。

ほんと Note アプリは流浪の民してる。
前からみんなわかってはいるが、クラウドサービスってのは提供者の都合だけでどうとでもなる。
フリーだからといって使っていてもビジネスデザインが変わったらすぐに締め出されたり。
こんな不安定なものを使うくらいなら、自分でちょっと勉強して苦労してホストして、
でもオープンソースの力を借りながらの不安定なほうを選びたい。

昔からクラウドは性に合わなかったが、今度ばかりはもうクラウドサービスを減らしていこうと思った。
クラウドは、たとえお金を支払っていてもクローズされるリスクがあると今一度思った。
Airsonic / Jpsonic もほんとうにべんり。

おわり。

## 参考
[【2019最新版】Markdownエディタ厳選まとめ（Win/Mac/iOS/Android） | NotePM](https://notepm.jp/blog/724)
[Dropbox、無料版のアクセス端末を3台までにひっそり制限 - ITmedia NEWS](https://www.itmedia.co.jp/news/articles/1903/15/news081.html)
[laurent22/joplin: Joplin - an open source note taking and to-do application with synchronization capabilities for Windows, macOS, Linux, Android and iOS. Forum: https://discourse.joplinapp.org/](https://github.com/laurent22/joplin)