はじめに
この記事ではObsidianで以下の事を実現する手順を紹介します。
- その週に完了したタスクの一覧がウィークリーノートに自動で挿入されるようにする
- 1を実現するため、毎日繰り返すタスクのチェックリストがデイリーノートに自動で挿入されるようにする
利用するプラグインは以下の通りです。
- コミュニティプラグイン
- Calendar
- Templater
- Tasks
- コアプラグイン
- Daily notes
項目名等は英語で記載しています。表示言語を日本語にしている方は適宜読み替えてください。
事前準備
デイリー/ウィークリーノート用のフォルダと、テンプレート用のフォルダ、空のノートを作成しておきます。
Journal/
Daily/ # デイリーノート用のフォルダ
Weekly/ # ウィークリーノート用のフォルダ
Templates/ # テンプレート用のフォルダ
Daily # 空のノート
Weekly # 空のノート
プラグインの導入と設定
1. Calendar
ウィークリーノートを作成するために、Calendarを導入して以下のように設定します。
-
Show week number
を有効にする- これでウィークリーノートを作成できるようになります
-
Weekly note folder
を設定する- ウィークリーノートだけが入るフォルダであれば、どこでも良いです
-
Weekly note template
は使わない- Templaterの方で設定するため、Calendarの方のテンプレート設定は使わないようにします
動作確認
設定が済んだら、カレンダーの週番号をクリックして所定のフォルダにウィークリーノートが作成されることを確認します。
2. Daily notes
-
New file location
を設定する- デイリーノートだけが入るフォルダであれば、どこでも良いです
-
Template file location
は使わない- Templaterの方で設定するため、Daily notesの方のテンプレート設定は使わないようにします
動作確認
設定が済んだら、カレンダーの日付をクリックして所定のフォルダにデイリーノートが作成されることを確認します。
3. Templater
Templaterを導入して以下のように設定します。
-
Template folder location
にテンプレート格納用として作成したフォルダを設定する -
Trigger Templater on new file creation
を有効にする
-
Enable folder templates
を有効にして、以下のフォルダテンプレートを追加する- デイリーノートのフォルダ(にファイルが作成された時)
- デイリーノート用のテンプレートファイル
- ウィークリーノートのフォルダ(にファイルが作成された時)
- ウィークリーノート用のテンプレートファイル
- デイリーノートのフォルダ(にファイルが作成された時)
動作確認
デイリーノートのテンプレート(ウィークリーノート)のテンプレートにテキストを入力しておいて、デイリーノート(ウィークリーノート)を新規作成した時に自動でテンプレートのテキストが表示されることを確認します。
4. Tasks
Tasksを導入して以下のように設定します。
-
Task Format
をDataviewに変更 -
Global task filter
を設定する- 必須ではありませんが、集計対象のチェックリストアイテムと集計対象外のチェックリストアイテムをタグで区別できるようになるのでお勧めです
-
Set done date on every completed task
を有効にする- 完了日を基準として集計するために使用します(それ以外はお好みで)
Tasksの設定変更を反映するためObsidianを再起動します。
テンプレート作成
1. デイリーノートのテンプレート
毎日繰り返すタスクをデイリーノートのテンプレートに入力します。
# 🐾やること
- [ ] #task 爺やを起こす
- [ ] #task 爺やがご飯を出すまで待つ
- [ ] #task 婆やに引き戸を開けさせる
- [ ] #task 押入れの見回りをする
動作確認
新しいデイリーノートを作成して、テンプレートに入力した内容が自動で入っていることを確認します。
2. ウィークリーノートのテンプレート
ウィークリーノートのテンプレートに以下のコードを入力します。
(週の始まりを月曜日にしている場合のコードのため、週の始まりを日曜日にしている場合は曜日周りの処理を適宜変更してください)
<%*
const startOfWeek = moment(tp.file.title, "YYYY-[W]ww").startOf("week")
const lastSunday = startOfWeek.add(-1, 'd').format("YYYY-MM-DD")
const nextMonday = startOfWeek.add(8, 'd').format("YYYY-MM-DD")
-%>
```tasks
status.type is DONE
path includes Journal/Daily
done after <% lastSunday %>
done before <% nextMonday %>
sort by description
hide edit button
hide done date
```
動作確認
ウィークリーノートを作成して、その週に完了したタスクが一覧化されていることを確認します。
以上!