よく編集するノートが一目でわかるObsidianプラグインを作った
ノートの編集回数を自動で数えて、よく手を入れるノートを把握する。そんなObsidianプラグインを作りました。 十分に手元では動いているのでベータ版として公開します。
出発点:「重いノート」を見つけたい
Obsidianを1年以上使い続けて、ノートは増えました。
グラフビューを開いたとき、すべてのノートが同じ大きさで表示されます。 それでリンクの数で大きさは変わるが、それは「つながりの多さ」であって「思考の活発さ」ではありませんでした。
自分にとって価値のあるノートとは何かをもう一度問い直す機会になりました。 そして何度も開いて、書き足して、書き直しているノート。つまり編集回数が多いノート。 これを直感的に見分けられたら、ノートの全体像がもっと立体的になるのではないか?と考えました。
既存プラグインを探すところから
まず既存の解決策を探しました
Extended Graphは、frontmatterの値でノードサイズを変えられます。これは「表示」側としてはまさに求めていたものである一方、編集回数を自動で計測する機能はなさそうです。 また、自分で毎回フロントマターをいじる体験は運用しづらそうと思いました。
Obsidian GitはvaultをGit管理してくれます。
git logでファイルごとの変更頻度は追えるが、自動コミットを有効にするとログが汚れます。
バックアップが取られることは良いですが、仮に既存のノートで重みづけをしたい場合はどうしたらいいか。
Activity HeatmapやSidebar Heatmapは それぞれ「量の可視化」「日ごとの表示」であり、「累積的な編集回数で重みづけする」にドンピシャではありません。
方針:文字数差分で「実質的な編集」を検出する
編集回数を数えるといっても、保存するたびに+1ではおかしいですね。 typoの修正と、段落をまるごと書き直すのでは意味が違います。
そこで文字数差分の閾値判定を採用しました。
ノートを開いた時点の文字数を記録しておき、ファイルを離れるか一定時間(デフォルト3分)入力がなかったタイミングで差分を計算します。
差分が50文字以上ならfrontmatterのedit_countを+1する。ここはもちろん人によって大きく好みがわかれるだろうから、設定で自由に変えられるようにしました。
---
edit_count: 5
---
この方式の味噌はObsidian内で完結することです。Gitも外部ツールも不要で、メモリ上に保持するのは開いているファイルの初期文字数だけで軽量です。 ファイルにあるフロントマターをいじればいいのでアプリよりファイルの原則にも沿うと考えました。
(現時点の)運用の仕方
Obsidian 1.9.10以降であれば、コア機能のBasesを使ってedit_count順のテーブルを作れます。
Dataviewのようなサードパーティ依存もないため軽量です。「このノート、最近よく触ってるな」「このあたりに思考が集中してるな」と一目でわかるので、画面にpaneで常に表示してます。
まだベータ版
現在このプラグインはベータ版として公開しています。BRAT経由でインストールできます。
自分のvaultで日常的に使っていて、目立った問題は出ていませんが、まだ他の人の環境で十分にテストできていないので、正式リリースにはしていません。 フィードバックがあればGitHubで受け付けています。
振り返って
ノートの価値を「リンクの数」だけでなく「手を動かした回数」で測れるようになりました。どちらが正しいということではなく、別の軸で見ることで気づくことがあります。 思考の軌跡は、書いた量ではなく、書き直した回数に宿る。そんな感覚を、数字で裏付けてくれるツールになりました。