どうもお久しぶりです。whatacottonです。最後に記事を書いたのは2か月くらい前でしょうか。 今確認したら4か月前でした…時が経つのはあっという間ですね…
この記事はjsys Advent Calendar 2024の9日目の記事です。jsysとは関係ないですがこの記事では最近やってきたマイブームについて書こうと思います。
# ついにやってきたobsidianの季節
実は去年のいまごろ、obsidianとsyncthingを組み合わせた同期システムについての記事を書いていました。今回も同じようにobsidianの記事を書くということで、冬はobsidianの季節かもしれません。
最近またobsidianを触り始めたのですが、経緯としては最近たくさん授業をとっていて、ちゃんと勉強したいなと思ったときに補助ツールをいい感じに使えたらうれしいなと思ってまた始めた感じです。
# obsidianとは
obsidianとはマークダウンエディタです。ページやタグに紐づけてリンクをつけることができます。
# 同期問題をどうにかしたい!!!
obsidianをずっと使っていくと考えたときに問題となるのが、端末間の同期問題です。やっぱりパソコンで作ったノートをiPadやスマホで見たいのです。 その問題へのアプローチの一つとしてsyncthingだったのですが、改めてちゃんと調べたところこんな拡張機能を見つけました。
これを使うことで端末間同期ができるようになると知り、いろいろやってみることにしました。このソフトウェアはcouchDBというDBをバックエンドに持ち、livesyncモードにすると3秒くらいで端末間同期をとってくれます。あと日本人が開発に関わっているため日本語ドキュメントも豊富で分かりやすいです。
# tailscaleでTLS通信を行う
パソコンのみで同期をとる場合は問題ないのですが、スマホで同期をとる場合はHTTPSで通信する必要があります。 ですがドメインのレコードを追加して設定を組むのはとてもめんどくさいので、tailscaleのmagicDNSを使うことにしました。 しかし、ただtailscale上でのドメインでアクセスするだけではHTTPS通信は実現できません。そこでtailscaleのこの機能を使うことにしました。
これを使うことでHTTPS通信を行うことができます。ただこれはすこし難点があって、HTTPSで複数のホストを立てる方法を見つけられなかったので、そのときはエンドポイントで切り分けることで対応することにしました。
あとはいろいろ設定することで同期を実現させることができました。この設定についてはそのうち記事を書こうと思います。ちなみにsyncthingのほうでは拡張もすべて同期されてしまっていましたが、今回の構成ではその辺の設定は別々に行うことができます。
# google calenderと連携したい!!!
obsidianにはdaily noteという毎日の日記をつけることができる機能があります。そこにgoogle calenderの予定が連携出来たら面白いなと思い、また調べていたらこんなものがありました。
結論から言うと、ログイン状態がたまにリセットしてしまうことがありますがとてもいいです。obsidianにはtemplaterという拡張機能があるのですが、それに対応した拡張機能なので、javascriptをササっと書いていい感じに展開できます。
設定にはGCPの知識が少し必要なので、ドキュメントを読む必要があるかもしれません。
# wakatimeと連携したい!!!
どうせなら、勉強している時間の統計も取りたいと思い、obsidianのwakatimeの拡張も入れることにしました。
ただこれには少し欠点があって、そのままのコードではプロジェクト名がunknownとなってしまいます。なので裏でたたいているwakatime-cliを少し修正してプロジェクト名をvault名(メインのフォルダ名)にするように、フォークして修正しました。
そのうちwakatimeの統計情報を拾ってきて、daily noteに追記できるようにしたいなと思っています。(APIをいじりやすいように今はwakatime互換のオープンソースのセルフホストできるwakapiというものを使っています。)
# 実際使ってみて
今のobsidianの環境はとても快適です。syncthingの時も悪くはなかったのですが、syncの機能がファイルの監視ではなく、内部で拡張機能が監視して差分をみているのでとても更新が早くてよいです。
さらにobsidianがマークダウンエディタとしてとても優秀であるなと思います。texが中でインラインでかけるのはやはりアツいです。
# 終わりに
だいぶ駆け足だったかもしれませんが、楽しんで読んでもらえたら幸いです。もし気が向いたらjsysについての記事も書くかもしれないので少し期待していただければと思います。