Obsidianに Heatmap Calendar というコミュニティプラグインがある。
Dataview プラグインをベースに機能するが、つまるところ「ハビットトラッカー」と呼ばれるやつだ。最近はフィジカルの手帳のテンプレートにもあるし、スマートフォンアプリでも数えるほどある。カレンダー状のマップを埋めていって習慣を見える化して定着させていこうというツールだわね。
私も紙の手帳で試したこともあれば、いくつもアプリをインストールしては削除を繰り返してきた。そいで、Obsidian にもこの機能を実装するプラグインがあることはチョット前から知っていたのだが、ようやく導入したという話だ。
公式に配信されているので設定からインストールが可能だが、貴重なサンプルコードが上記にあるので、見逃せない。で、慣れているひとには簡単なんだろうけど、導入にやや手間取ったので、設定方法をシェアしておく。
プラグインをインストールし、設定する
以下、2つのプラグインをインストール、設定する。
- Dataview
- Enable Settings -> Dataview -> Enable Javascript Queries をオンにする。
- Enable Inline Javascript Queries もオンにしておいていい気がする。
- HeatMapCalendar
- 特に設定不要
また、マウスオーバーでデータの入力日付をホップアップで参照できるようにしたい場合、Core Plugins -> Page Preview もオンにする必要がある。Page Preview 内の設定は好きにしたらいい。
コードを記述(ほぼコピペ)して必要な箇所を直す
コードを適当なノートに記述する。まずはサンプルをコピペしてヒートマップが再現されるかを確認するといい。ひとつだけ、デイリーノートが格納されるディレクトリ名だけは、自分の Valt 内の名称にあわせる必要がある(下記)。
上記リンクの “Full Example Code” 内には文字通りのフルコードのサンプルが記載されているがこれには触らず、[EXAMPLE_VALUT]の[Overview.md]を開く。すると、”Exercise” のコードから始まるサンプルが表示されるので、これを自分の適当なノートに貼り付ける。
サンプルコードは Dataview を機能させる必要があるので、以下のようにする必要がある。 Dataview については人に説明できるほど詳しくないので、ここでは扱わない。
```dataview
コピペしたコード
```
デイリーノートのディレクトリ名を指定する
コード内のふたつめのブロックの for 文のなかに “daily notes” という記述があるが、ここが参照先のディレクトリを指すので、自分の Vault 内のデイリーノートのディレクトリ名にあわせる。この時点で、サンプルコード “Exercise” に対応したヒートマップの土台は表示されるはずだ。
プロパティを設定する
ヒートマップは、YAML(フロントマター)を参照する。このサンプルコードなら “Exercise” だ。ということで、目的のプロパティを好き勝手に命名し、コード内で当該箇所を修正する。ふたつめのブロックの1行目、4行目の2か所だ。
YAML(フロントマター)については最新バージョンで規格化されたので使いやすくなった(異論もあるんすかね)。以下などを参照するといいのでは。
- Obsidian 1.4.0で登場したPropertiesがすごく良いhttps://note.com/masuipeo/n/n5778c88845da
と、ここまでの手順でこのサンプルは機能するはずなので、適当な日付のノートにプロパティ を追加し(”Exercise” のままなら”Exercise” を)、数値を適当に入力してマップが埋まるか(赤系統の色になる)を試す。動かない場合は、がんばれ。
色や数値の幅、アイコンなんかを指定する
数値の場合、幅を指定する
記録対象が数値の場合、Intensity の項目で下限と上限、刻み幅を指定できるらしい。これは、上述の “Full Example Code” 内の Intensity 関連項目によって指定できる。指定しない場合、入力済みの下限と上限から適宜判定されるようだ。
カラーコードを指定する
ぶっちゃけ使ってない。これも “Full Example Code” 内にいくつかサンプルが上がっているので、目的や好みに合わせて指定すればよかろう。ちなみに設定メニューからはデフォルトを弄れるらしいが、これも別に使っていない。
アイコン(emoji)を表示したい場合は
[Overview.md]内の “Writing” にあるように、2つ目のブロックの最終行、数値を入れる場合にはブランクになっているブランケット内に目的のアイコンを入力すると、当日のプロパティに何かしら入力することで対応し、絵文字が表示される。潰れ気味になるのは御愛嬌かな。
その他のことなど
ほかには、表示をニ重化する方法だとか、[Overview extended.md]にはもう少し高度な記述方法などが載っているようだが、どちらも私はフォローできていない。というか、現状で満足してしまっている。
あと前提となる注意点だが、デイリーノートの設定における日付の命名規則を変則にしてるとうまく読み込まれないかもしれない。わたしはこれで詰まっていた。
運用にあたっては
自分は一覧用のノートに目的別のカレンダーを貼り付けて運用している。事故的に閉じてしまうとき以外は開きっぱなしだ。こうすると 1日に1度は眺めることになるので意識づけしやすい。というか、手帳やアプリではこの開くという行為が実践できなかったのが最大の問題と気づく。
人によっては、目的別のノートにそれぞれ貼り付けるとか、うまくやってデイリーに毎日載せるとかでもありかもしれない。上述のように、目に留めることが大事なのだ。習慣化うぉー!というよりは記録によって、ある行為の過多あるいは過少を防ぐためのツールという意識のほうがよい。
特に悪癖を減らしたい目的にはちょうどいいやとなっている、記録もあとからでいいし。そんな感じで 5 つくらいカレンダーを記録しているが、悪癖を減らすには記録しないでいい日を増やせばいいのでなおさら、なんとなく苦にはなっていない。
参考
このプラグインの情報、日本語だとほとんどないんだよなーと思っていたら、先月、情報を公開してくれている方がいた。本職の方であるし、参考になる部分もある。
あとは韓国人のひとのブログも部分的に参考にしたのでリンクしたかったのだが、これはどっかいっちゃった。すまん。あったあった。履歴にあった。この方のブログをみてたんでした。
Last modified: 2024-02-19