もう一月以上前になるが Obsidianノート術: ライフログや個人のノートはMarkdownでローカルに保存 | 増井 敏克というKindle本を読んだ。中々面白かった。いつのまにか Markdownエディタも色々なものが出ていて、進化しているんだな、と感じた。
で今更ながらMarkdownエディタである Joplinの存在をしったので試してみることにした1。
デスクトップアプリをインストール
Joplin Desktop Applicationは、最近の流行りかAppImage
で配布されている。
cd ~/AppImage
ln -s ~/AppImage/Joplin-2.8.8.AppImage ~/.local/bin/joplinapp-desktop
./Joplin-2.8.8.AppImage --appimage-extract
cp squashfs-root/@joplinapp-desktop.desktop ~/.local/share/applications/joplinapp-desktop.desktop
cp squashfs-root/usr/share/icons/hicolor/256x256/apps/@joplinapp-desktop.png ~/.local/share/icons/hicolor/256x256/apps/joplinapp-desktop.png
cp squashfs-root/usr/share/icons/hicolor/128x128/apps/@joplinapp-desktop.png ~/.local/share/icons/hicolor/128x128/apps/joplinapp-desktop.png
cp squashfs-root/usr/share/icons/hicolor/48x48/apps/@joplinapp-desktop.png ~/.local/share/icons/hicolor/48x48/apps/joplinapp-desktop.png
cp squashfs-root/usr/share/icons/hicolor/32x32/apps/@joplinapp-desktop.png ~/.local/share/icons/hicolor/32x32/apps/joplinapp-desktop.png
cp squashfs-root/usr/share/icons/hicolor/16x16/apps/@joplinapp-desktop.png ~/.local/share/icons/hicolor/16x16/apps/joplinapp-desktop.png
nvim ~/.local/share/applications/joplinapp-desktop.desktop
sudo update-desktop-database
[Desktop Entry]
Name=Joplin
- Exec=AppRun --no-sandbox %U
+ Exec=/home/arimasou16/.local/bin/joplinapp-desktop --no-sandbox %U
Terminal=false
Type=Application
- Icon=joplin
+ Icon=/home/arimasou16/.local/share/icons/hicolor/256x256/apps/joplinapp-desktop.png
StartupWMClass=Joplin
X-AppImage-Version=2.8.8
MimeType=x-scheme-handler/joplin;
Comment=Joplin for Desktop
Categories=Office;
ただ、こんな手間をかけずとも Tool to Integrate AppImages with Ubuntu Desktop - OMG! Ubuntu!で紹介されている AppImageLauncherを使えば宜しくやってくれるみたいだ。
同期設定
私の場合、 Nextcloudを使って同期するのだけど、二要素認証、Time-based One-time Password(TOTP)を使っている場合、無理なのか?と思ったが、 前回の記事で紹介したとおり、アプリパスワード2を使えば可能となる。
とはいえ、Nextcloud WebDAV URL
の書き方を間違えると上手くいかない。正しいURLがhttps://cloud.example.com/nextcloud/remote.php/dav/files/arimasou16/
として。
- WebDAV URLなのにブラウザでアクセスするURL
https://cloud.example.com/nextcloud/
を書いてしまうと…
エラーです。URL、ユーザー名、パスワードなどを修正し、同期先にアクセスできるかを確認してください。次が報告されたエラーです:
PROPFIND : Unknown error 2 (405): <html> <head><title>405 Not Allowed</title></head> <body> <center><h1>405 Not Allowed</h1></center> <hr><center>nginx/1.18.0 (Ubuntu)</center> </body> </html> (Code 405)
- ユーザー名が抜けたURLを指定してしまう
https://cloud.example.com/nextcloud/remote.php/dav/files/
完了: 2022-10-22 16:55 (2s)
最新のエラー: Error: MKCOL locks/: Permission denied to create directory (Exception Sabre\DAV\Exception\Forbidden) (403): <?xml version="1.0" encoding="utf-8"?> <d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns"> <s:exception>Sabre\DAV\Exception\Forbidden</s:exception> <s:message>Permission denied to create directory</s:message> </d:error>
https://cloud.example.com/nextcloud/remote.php/dav/files/arimasou16/
だと直下にjoplin
ファイルが増殖されてしまうので、慌てて、/joplin
ディレクトリを末尾につけてhttps://cloud.example.com/nextcloud/remote.php/dav/files/arimasou16/joplin
とすると
最新のエラー: Fail-safe: Sync was interrupted because 100% of the data (9 items) is about to be deleted. To override this behaviour disable the fail-safe in the sync settings.
と表示される。この場合、nextcloud
サーバーにログインして、.md
ファイルだけでなくて、locks
、tmep
といったディレクトリとinfo.json
といったファイルなども/joplin
に移動してしまえば、大丈夫だ。もし通常のnextcloud
アカウントユーザーのまま、使いたい場合、/joplin
ディレクトリ作って、URLもhttps://cloud.example.com/nextcloud/remote.php/dav/files/arimasou16/joplin
とすれば、ルートが汚染されることはなく、/joplin
ディレクトリ配下に同期される。
結局、自分は、セキュリティを考慮してjoplin
専用のユーザー作って、同期させることにした。
Simplenoteからの移行
それまで、 Simplenoteを使っていたので、そこからゴソっと移行したい。移行ツールは存在していた。 GitHub - rpgd60/simplenote2joplin: Process JSON file with exported notes from SimpleNote for import into Joplinである。
これを使えば、スマホアプリからエスクポートしたjson
ファイルを以下の手順でenex
ファイルに変換してインポートすれば移行が完了する。
cd ~/git
git clone https://github.com/rpgd60/simplenote2joplin.git
python3 simplenote2joplin/simplenote2joplin.py --json-file /home/arimasou16/Downloads/simplenote.json >notes.enex
ただ、これだとタイトルが名称未設定になる。タイトルも--create-title
といったオプションや Usage Examples を見れば出来るのかも知れない。
何てことはないWeb版、もしくはデスクトップアプリからエクスポートすれば、一個一個の記事がプレーンテキストでtxt
ファイルとして出力される。ゴミ箱のは/trash
ディレクトリにあり、全記事を纏めたスマホアプリでエクスポートできる同じ内容のjson
ファイルは/source
ディレトリに notes.json として出力される。
なので、ゴミ箱の記事やjson
ファイルのは除いて、ディレクトリ毎インポートしてしまえば、タイトルありの状態で記事が移行される。ただ、追加された日時は同時刻になってしまう。
vim
プラグインもある
そして、vim
からのファイル操作も可能だ。
GitHub - tenfyzhong/joplin.vim: This is a plugin for us to use joplin.app in vim.というプラグインがある。vim
プラグインが用意されているから、このjoplin
を試してみたのだが…
なんとnvim
には現時点 2022-11-21 では対応してない。なら、WindowsやMacでは
KaoriYa版GVimや
MacVim-KaoriYaを使ってたから、戻すかぁ、と思ったのだけど…
vim-gui
は透明化が簡単に出来ない3…ならターミナルでvim
使えばいいかぁ、と思ったら
key bindings - Strange behavior of Ctrl+j
で下に移動してしまう。リマップしたいのだけど出来ない…let g:BASH_Ctrl_j = 'off'
でイケるとあるのだけど、駄目。
じゃあ、透明化なんてどうでもいいからGVim
で使うかーと思って使い始めたのだけど、vim
プラグインの使い勝手が、個人的に宜しくない。特に、無題のバッファをそのままタイトル付けて登録(同期)しても、無題のバッファのままなので、更新が:w
で出来ない。一々、ファイルとして保存してから編集しないといけない。
simplenote-vim/simplenote.vimと比べて、全体的にイマイチなんだよねぇ。
恐らく、そんなvim
で頑張るよりターミナル版
Joplinが、vim
に寄せて作られているので、こちらを使う方が良いかと思う。
Joplin user interface is partly based on the text editor Vim and offers two different modes to interact with the notes and notebooks:
私は、結局、デスクトップJoplinで、テキストエディターのコマンド
を指定できるので、そこで下記のように設定した。
パス | 引数 |
---|---|
kitty | -e nvim |
そして、Ctrl+e
でテキストエディターが起動できるので、そこでnvim
起動して編集して、という形で妥協した。
Webクリッパーがある
これまでこうした類いは、使ってこなかったがWebクリッパーがある。初めError: Could not connect to the Joplin application. Please ensure that it is started and that the clipper service is enabled in the configuration.
といったエラーが出るからどうやって使うのか思ったら。
デスクトップアプリの設定 -> Webクリッパーから クリッパーサービスを有効にする で使用可能となる。デスクトップアプリの起動中にしか使えない。
とはいえ、便利そう。
ChromebookでJoplinを使えるのか?
しかし、これで終わりではない。この ChromebookにJoplinをインストールできるか? - MYmemoブログにもあるとおり、そうだよ、Chromebookでは、どうするんだよ!と。
Linuxインストールして、そこから起動すればやれるだろうが、余りに邪道すぎる。
実は過去において Joplin Web API for Nextcloudというのがあったのだけど、Joplin Serverが出来たから廃止ね!として終了してしまっている。
Joplin Web API for Nextcloud is now discontinued in favour of Joplin Server
Joplin Server、何じゃそれ!と思ったところで、次回 Joplin Sever導入編に続く 。
-
何故、 Obsidianじゃないかと思うかも知れないが、多機能過ぎると思ったのと、同期がアプリによっては上手く行かない(使いづらい)といった 記事を読んだからだ。 ↩︎
-
GitHub - tsuyoshicho/transparency.vim: Gvim transparencyで出来るらしいが、駄目だった。 ↩︎