Obsidian – Templater

ファイル名や現在時刻などを利用して、標準より柔軟にテンプレートを設定できます。

公式サイト (レポジトリ)

カーソル位置のコントロール

<% tp.file.cursor(?) %> (?は数字) を利用して、Templater: Jump to next cursor location でカーソル位置を移動することができます。

Alfred - Snippet を利用して、<% tp.file.cursor({cursor}) %> に割り当てると楽に入力できます。自分は ;cur で呼び出しています。

JavaScript利用

<%* script %> を利用して、scriptを記述できます。 await tp.system.prompt("Description", "Default") を利用してインタラクティブに項目を埋めていくことが可能になるので、会議テンプレート - Obsidian に日程や準備期間をファイル名やテンプレートごとの固定値ではなく、随時入力する形式のテンプレートを作成しています。

以下のテンプレートがサンプルです。ファイル名も修正したいのですが、うまくファイル名変更ができないので、対策検討中です。

# Title:: <% tp.file.cursor(1) %>[[]] Meeting
> Type:: #meeting/client
<%*
  const tDate = await tp.system.prompt("Input Date as YYYY-MM-DD","");
  const tTime = await tp.system.prompt("Input Start Time as HHmm","");
  const tDur = await tp.system.prompt("Input Duration as ?H?M","");
  const tLT = await tp.system.prompt("Prep Lead Time Days","1");
-%>
> Date:: <% tDate %>
> WDay:: <% tp.date.now("(ddd)", 0, tDate, "YYYY-MM-DD") %>
> Time:: <% tp.date.now("HH:mm",0,tDate + " " + tTime, "YYYY-MM-DD HHmm") %>-<% tp.date.now("HH:mm","P0DT" + tDur, tDate + " " + tTime, "YYYY-MM-DD HHmm") %>

ファイル名変更

tp.file.rename("New Filename") でファイル名を変更できます。しかし、作成時に適用されるテンプレートでファイル名を変更しようとすると、テンプレートが適用された元のファイルとは別に、変更しようとする名前の新しいファイルを作成してしまいます。

一度保存されたファイルに対して、このファイル名変更を適用した場合には、そのファイルの名前を変更します。新規作成時にファイルが保管されるタイミングの問題かもしれません。

サンプル集

タイムスタンプ

ローカルでのプレビューではダイナミックに表示できますが、Obsidian - Publish では利用できません。なので、以下のテンプレートを利用して手動で変更しています。

広告

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

%d