はじめに
気がついたら前回の投稿からだいぶ時間が空いていた。
このサイトには主にObsidianについて投稿してきたのだが、運用1年位から自分の中で新規性のある話題はなくなってきて、ある意味安定期に入っている。
ただ、色んな方のブログやnoteに助けられたことも多いので、ちょくちょく何かしら投稿したいとは思っている(多分、そこそこ詳しくなってきているので)。
今回は、Obsidianのタスク進捗をプログレスバーで一覧する|⿶⿵⿷⿴⿳で紹介されているタスク進捗バーの作り方を解説する。というのも、こちらの解説記事ではMetadata Menuを使用しているが、Dataviewだけで可能だからだ。
Dataviewjsは今回は使用せず、Dataviewの基本的な使い方は知っているものとする。
複数の知識を組み合わせるので、順番に説明する。
プログレスバーの書き方
下記の通り
数字に進捗率を記入する。
タスクの情報を取得する
Dataviewでアクセス可能なノートのメタデータは、実はDocumentを読まなくても自分で確認できる。
例えば、Playgroundというタイトルのノートを作ってみて、Dataview tableで下記の様に書いてみる。
ここに表示された一覧は全て、Dataviewでアクセス可能なメタデータとなる。
みたいな感じで使用できる(フロントマターはそのまま書いても使用できるようになっているが)。ここにtasksという項目があり、これがタスクへのアクセスとなる。
更に、このノートに実際にタスクを追加すると、更に下位の項目が表示されるようになる。
ノートのタスクの総数を取得する
file.tasksで、ノート内のタスクのarrayが返ってくるのでlengthで長さを出す。
lengthなどのfunctionは色々使えるが公式documentに解説がある。
完了したタスクの数
tasksの更に下位のcompletedがチェックの有無を判別している。ここでフィルターをかけると完了タスク数を表示できる。
プログレスバーと合体してDataview Tableに表示する
プログレスバーを文字列で書いて、数字の部分にタスク数を入れ込む。
これでタスク進捗率のプログレスバーを表示できる。
更に%の表記を追加する
こんな感じ?
デイリーノートに注力する
更にデイリーノートに注力したバージョンを考えてみる。
インラインで書く用。
本日のデイリーノートへのリンクを取得する
データフォーマットは自由に変えれる。
Dataviewjsで記載したバージョン(2024-12-10追記)
本日のデイリーノートのタスク数を取得する
先程の取得方法にファイルリンクを先頭に付け加える。
本日のデイリーノートのタスク進捗プログレスバーを取得する
合せ技。
Dataviewjsで記載したバージョン(2024-12-10追記)
このほうが自動で更新されて良い感じ。
おわりに
ホームページの一番上に追加してみた。
一応DataviewのrefreshボタンもMeta Bindで作って、完了。
そんなことより今日まだ38%なのやばい。
あくまでタスクの数の計算で重み付けはされてないので…