ObsidianのDataviewで習慣トラッキングを始めた

thumbnail for this post

前からObsidianで習慣トラッカー的なことをやりたいと思っていて、1,2回挫折したりしていた。

今日気が向いたので色々調べてみたところ、専用のプラグインを使うよりもDataview+Propertyで意外と簡単にできるということがわかり、やってみた。

結果、シンプルなものがサクッとできたので、やり方をメモしておく。

手順

1. Dataviewプラグインのインストール

blacksmithgu/obsidian-dataview: A data index and query language over Markdown files, for https://obsidian.md/.

Image from Gyazo

これをインストール。

2. デイリーページのプロパティを追加

日々チェックをしたい習慣を、デイリーページのプロパティとして追加する。

参考ページでは英語の文字列を使っているけれども、日本語でも問題なく動作した。

気をつけるのは、プロパティタイプから「チェックボックス」を選択すること。違うものでもできないことはないはずだが、今回自分が参考にしたDataviewの内容だと、チェックボックス用に書かれたサンプルだったので、それにあわせている。

Image from Gyazo

3. 任意のページに以下の内容を追加

```dataview
TABLE WITHOUT ID file.link as Date, 
choice(読書 = True, "💚", "🤍") as 📚, 
choice(執筆 = True, "💚", "🤍") as 🖊️, 
choice(運動 = True, "💚", "🤍") as 🏃, 
choice(英語 = True, "💚", "🤍") as 📣 
FROM "1_Daily" 
WHERE file.day <= date(now) AND file.day >= date(now) - dur(8days) 
SORT file.day ASC
```

choice~のところで、指定したプロパティ(読書、執筆など)にチェックが入っている=Trueだったら、緑色のハートを、そうでなければ白色のハートを表示するようになっている。 行末のemojiは、テーブルの列見出しに該当。

FROM "1_Daily"は、デイリーページの含まれるフォルダ名を指定している。直下だけでなく配下のフォルダは全て対象になるらしい。ここは自分の環境にあったものに要変更。

WHERE~のところで、デイリーページの対象範囲を指定している。*daysのところを変更すると、過去何日分の結果を表示するかが決まる。

4. デイリーページのプロパティで、実施したものにチェック

チェックを入れると、数秒は待つものの、反映される。

以下、たいへん参考にさせていただきました

Yoshiki Ito
Yoshiki Ito
山形出身 千葉在住の本業QAエンジニア
2024-05-13

Tags