Obsidianでデイリーノートを使っていると、ファイル数が増えて管理が大変になってきませんか?
そこでTemplaterプラグインを使って、デイリーノートを作成時に自動的に該当の年月フォルダへ移動するようにしたいと思います。
今までのイメージ
Daily/ ├── 2025-07/ ├── 2025-07-01.md ├── 2025-07-02.md ├── 2025-07-03.md ├── 2025-07-04.md ├── 2025-07-05.md ├── 2025-07-06.md ├── 2025-07-07.md └── ...
完成イメージ
デイリーノートを作成すると、以下のように自動的に年月フォルダに整理されます:
Daily/
├── 2025-07/
│ ├── 2025-07-01.md
│ ├── 2025-07-02.md
│ └── ...
├── 2025-08/
│ ├── 2025-08-01.md
│ └── ...
└── 2025-10/
├── 2025-10-01.md
└── 2025-10-20.md
前提条件
- Templaterプラグインがインストールされ、有効化されていること
手順
1. 既存のデイリーノートを整理(任意)
既に作成済みのデイリーノートがある場合、まず月ごとのフォルダへ移動させ整理します。
2. デイリーノートテンプレートを編集
テンプレートファイルはConfig/Templates/DailyNoteTemplate.mdとして置いているのでこちらを開きます。
先頭に下記のコードを追加します
<%*
// デイリーノートを年月フォルダに自動移動
const yearMonth = tp.file.title.substring(0, 7); // YYYY-MM 形式を取得
const targetFolder = `Daily/${yearMonth}`;
await tp.file.move(targetFolder + "/" + tp.file.title);
%>
3. Templaterの設定を確認
.obsidian/plugins/templater-obsidian/data.jsonで以下が有効になっていることを確認する
{
"trigger_on_file_creation": true,
...
}
仕組みの解説
- ファイル作成: デイリーノートプラグインが
Dailyフォルダに新しいファイル(例:2025-10-20.md)を作成 - Templater起動:
trigger_on_file_creationが有効なため、Templaterが自動実行される - 年月抽出:
tp.file.title.substring(0, 7)でファイル名から2025-10を抽出 - フォルダ移動:
tp.file.move()でDaily/2025-10/フォルダに移動(フォルダが存在しない場合は自動作成)
コードの詳細
yearMonth変数
const yearMonth = tp.file.title.substring(0, 7);
- ファイル名(
2025-10-20)から最初の7文字(2025-10)を抽出 - これが年月フォルダ名となる
targetFolder変数
const targetFolder = `Daily/${yearMonth}`;
- 移動先のフォルダパスを作成(例:
Daily/2025-10)
ファイル移動
await tp.file.move(targetFolder + "/" + tp.file.title);
- フォルダが存在しない場合は自動的に作成される
注意点
- ファイル名形式: デイリーノートのファイル名が
YYYY-MM-DD形式であることを前提とする - Templaterの有効化: Templaterプラグインが有効になっていないと動作しない
- テンプレートの設定: デイリーノート設定でテンプレートが指定されている必要がある
まとめ
Dailyフォルダ配下にそのままファイルをぶら下げていたため、かなり見栄えがしんどかったのですが、これでいつのDailyファイルを作成しようとも自動でフォルダ分けされるようになりました。
まぁ基本その日のDailyファイルしか作らないんですが、小さいストレスが消えて助かりました。
ぜひ試してみてください!