見出し画像

Obsidianのタスク進捗をプログレスバーで一覧する

Obsidianのノートにタスクを記述しても、未消化のタスクが埋もれてしまったり、「達成率をパッと知りたい」と思うことがあります。

そこで、DataviewMetadata Menuというプラグインを使って、ページ毎の進捗を動的なプログレスバーにして表示する方法を解説します。

完成品

自動的に一覧のプログレスバーが更新

Dataview のインストール

  • Community plugins → Browse をクリック

Community plugins → Browse をクリック
  • 検索欄に「brenan」を入力してDataviewを見つけます

  • Dataview関連のプラグインはとても多いので、この方法がおすすめです

コミュニティプラグイン一覧から検索し、クリック
  • Install をクリック

Install をクリック
  • Enable をクリック

Enable をクリック
  • Options をクリック

Options をクリック
  • Enable JavaScript Queries → オン

  • Enable Inline JavaScript Queries → オン

Enable JavaScript Queries と Enable Inline JavaScript Queries をオン

Metadata Menu のインストール

Community plugins → Browse
  • Metadata Menu を検索し、クリック

Metadata Menu を検索し、クリック
  • Install をクリック

Install をクリック
  • Enable をクリック

Enable をクリック
  • Options をクリック

Options をクリック

Metadata Menu の設定

設定 → Class Files path の指定

  • 任意の場所に Fileclass を保存するフォルダを作成します

  • 今回は Vault の一番上の階層に class という名前にしました

  • Class Files path に作成したフォルダを指定し、保存

Class Files path に作成したフォルダを指定し、保存
  • 先ほど指定したフォルダの右に+アイコンが表示されます

  • +アイコンをクリックし、Classを作成

+アイコンをクリックし、Classを作成
  • 作成が完了すると、Fileclass settings が表示されます

作成が完了すると、Fileclass settings が表示されます

Class → Fileclass field の追加

  • Fileclass fields というタブをクリックし、項目を追加

  • progress という項目を追加し、そのノートのタスクの完了率の数字を動的に適用させる

  • Field Name → progress

  • Field type → Formula

  • Auto update this field → オン

  • Javascript formula は 以下のように設定

Math.round((current.file.tasks.where(t => t.completed).length / current.file.tasks.length) * 100)
  • こんな感じになればOK

こんな感じになればOK

進捗を表示したいページの設定

  • 個別のタスクページのフロントマターに、FileClass(tasks)を追加

  • まだフロントマターに記述されていない項目(progress)を挿入

  • この手続きが成功すれば、progress にはページ内のタスクの完了率 0-100 が動的に表示されるようになります

完了率 0-100 が動的に表示

一覧を作成して進捗を可視化

  • 一覧のためのページを作成

  • 以下のDataviewコードを貼り付け

```dataview
TABLE WITHOUT ID
file.link AS リンク,
"<progress max=100 value="+progress+"></progress> "+progress+"%" AS 進捗
WHERE progress !=null
```
  • Fileclass tasks が適用されたページで進捗に変化があると、自動的に一覧のプログレスバーが更新されるようになりました

完成

自動的に一覧のプログレスバーが更新

みなさんの参考になれば幸いです。

この記事が気に入ったらサポートをしてみませんか?