はじめに
日記を書くことには大きな意味があります。その日あった出来事を思い出し短時間でサッと書き留めるのはアウトプット力が鍛えられますし、思考が整理され、終わらせたタスクやまだ残っているタスクなどがより鮮明になります。
ところで、Obsidianがエンジニアの間で広まってからというものの、多くの人がObsidianで日記を書くようになりました。大きな要因としては、Obsidianに備わっているDaily notes機能やTemplatesプラグインなど、日記をつけやすい環境が整っていることでしょうか。Obsidianで日記をつける系の解説記事や動画は既に多く存在するため、ご存じの方も多いと思います (Obsidianなどの基本的な概念の説明はそれらの記事にお任せします)。
私も最初はそれらの標準的なやり方で日記をつけていたのですが、使用していくうちに「もっとこうだったらいいな」という不満点がいくつか出てきました。そこで、少し変わったやり方で自分なりの日記システムを構築してみました。
既存の手法の不満点
サボる
日記といえば三日坊主の代名詞です。始めた頃は意気込んで日記を書くのですが、次第に文字数が減っていき、ついには全く書かなくなる、という体験談は枚挙に暇がありません。Obsidianで日記をつけるにしても、日記を書くという行為は自発的に行う必要があるため、この問題は解決しません。何かしらケツを叩いてくれる存在が欲しいところです。
サマリーが欲しい
日記は後から見返して過去を振り返ることも役割のひとつです。しかし、単に過去のファイルを見返すだけでは少し味気ないように思います。また、膨大な過去の記録を見返すのも大変です。ここで、もし例えば月一でその月のサマリーが送られてくるとしたら、その月の活動を簡単に振り返ることができますし、月末のちょっとした楽しみにもなりそうです。
高度なテンプレート作成がしたい
これはObsidianのTemplatesプラグインを使った手法に対する不満です。Templatesを使えば決まったフォーマットで簡単に日記を作成することができます。ところで、私は日記のテンプレートの中に残りのタスクを書くセクションを設けているのですが、日記ファイルを作成するとき、前の日の日記に書かれている残りのタスクを自動で引き継ぎたいと思いました。しかし、このようにファイル作成時に別のファイルやフォルダを参照して中身を変えるというようなことを実現するには、(できなくはないが)Templatesは合わないと感じました。
作ったもの
このようなシステムを作りました。
タスク引き継ぎ
日記ファイルを作成するとき、前日の日記からタスクを引き継ぎます。日記のテンプレートは以下のようになっていて、日記を作成するとき、前日の日記から「残っているタスク」の部分を抽出して自動で記入されます。これにより、未完了のタスクを毎回前日の日記からコピペしてくる手間が省け、自動記入された中から今日やったタスクを削除し、新たに発生したタスクを付け加えるだけでよくなります。
---
schema_version: 1
status: draft
operational_date: {{OPERATIONAL_DATE}}
---
# {{OPERATIONAL_DATE}}
## 今日やったこと
-
## 残っているタスク
{{CARRIED_TASKS}}
## 自由記述
-
前日のファイルを参照して作成するファイルの内容を決定する必要があったため、よく使われるTemplatesプラグインではなくQuickAddプラグインを使用しています。QuickAddの「日記を書く」マクロからUserScriptとして日記を作成するJavaScriptを実行させることで、高度なテンプレート作成を実現しています。
Git
日記があるVaultをGitHubで管理します。これ自体は日記に限らず多くのObsidianユーザーがやっていることだと思います。しかしここで重要なのは、これによってGitHub Actionsを使えるということです。つまり、日記を書いてリモートにpushしたとき、それに反応して作成された日記を使って何かしらの処理を実行できるようになります。これが後述の機能で活躍します。
Discord投稿
日記を書くと、身内のDiscord鯖のチャンネルに自動で投稿されるようにしました。読者という名の監視をつけるのは三日坊主に対する最も簡単な対策です。サボっても仲間がケツを叩いてくれますし、気の置ける仲間の日記を眺めるのは楽しいものです。
催促
その日の日記を書いていないと、Discordのチャンネルに催促のメンションが飛ぶようにしました。これでうっかり忘れを防止できます。ただ、日付が変わった瞬間に催促されると夜型の我々は困ってしまうので、次の日の朝6時を日記の締め切りとし、それまでに提出されていなければ催促が飛ぶようにしました。
AIサマリー
月の終わりに、その月のサマリーをAIが書いてくれるようにしました。これも日記と同じようにDiscordに投稿されます。
# {{TARGET_MONTH}}月 サマリー
## 今月の出来事
-
## 主な進捗
-
## AIコメント
from: {{MODEL_ID}}
{{AI_COMMENT}}
動作の様子
QuickAddの「日記を書く」マクロを実行して日記ファイルを作成します。日記を書いたらプロパティのstatusをdraftからdoneに変更します(書き途中でpushされてもいいように完了をこのプロパティで判別している)。
pushしてしばらくするとDiscordに投稿されます。日記が未完了だとちゃんと催促も飛んできます。鯖には愉快な仲間もいますし、簡単には辞められません。
使用技術
- Obsidian
- Git
- QuickAdd
- Github
- Github Actions
- Github Models
- Discord
- JavaScript
おわりに
日記は昔からやってみたかったのですが、サボり癖のある自分には無理だと思っていました。しかし、このシステムを作ってからはずっと継続できています。似たような悩みをお持ちの方はぜひ作ってみてください。

