ノート

2024-06-09追記: 空行を消したい場合の手法を変更しました。

Templaterのテンプレート

テンプレート使用月の日付を出力するTemplater1のテンプレートです。

<%*
const day = new moment(tp.date.now()).startOf('month')
const end = day.clone().add(day.daysInMonth(), 'days')

for (; day.diff(end, 'days') < 0; day.add(1, 'days')) { %>
<% day.format("YYYY-MM-DD") %>
<%* } %>
  • 定数 day: 出力する日付を扱います(2024年2月の場合:2024-02-01 00:00:00
    • 初期化時にstartOfを使用して、テンプレートを作成した日時の月初情報を取得しています
  • 定数 end: 来月の月初情報を扱います(2024年2月の場合:2024-03-01 00:00:00
    • cloneを使用して day を複製しています
    • daysInMonthで取得した当月の日数を加算しています
  • forループで day を一日ずつ加算し、end を超えるまで <% day.format("YYYY-MM-DD") %> を出力します
    • 出力部分をカスタマイズして、日付の部分を見出しやリンクにしたり、日付ごとに同じ内容を出力させたりできます

空行を消したい場合

forループで使用しているTemplaterのコマンド終了タグ %> の位置を調節する必要があります。

改行が入る部分のTemplaterのコマンド終了タグを -%> とすることで、改行を削除できます。2

<%*
const day = new moment(tp.date.now()).startOf('month')
const end = day.clone().add(day.daysInMonth(), 'days')

for (; day.diff(end, 'days') < 0; day.add(1, 'days')) { -%> // ←この部分
<% day.format("YYYY-MM-DD") %>
<%* } %>

日付ごとの空行を削除するテンプレートの出力例(抜粋)

Monthly NotesでTemplaterのテンプレートを使用したい場合

Monthly Notesで使用するテンプレートにTemplaterのテンプレートを設定した上で、Templater設定の Trigger Templater on new file creation を有効にします。 この設定はMonthly Notesに限らず、テンプレートから直接生成されるタイプのノートに適用されます。

Monthly NotesでTemplaterのテンプレートを使用したい場合の設定


  1. ノートアプリObsidianで使用可能なテンプレート用コミュニティプラグイン: https://github.com/SilentVoid13/Templater ↩︎

  2. Whitespace Control - Templater ↩︎