## 概要
タイトルの通り。お決まりの名前やフォーマットがあり、同じようなファイルを頻繁に作るときに楽をしたい。
## ソリューション
[[Templater]]を使います。
`Template folder location`で指定したディレクトリ配下にファイルを作成します。ここでは`⛩️Create Template File` という名前にします。
`⛩️Create Template File.md`
```js
<%*
// 作成するファイルのタイトルを入力
const title = await tp.system.prompt("Enter title")
if (!title) {
// 空の場合は終了
return
}
// ファイルパスを作成する。ディレクトリ名もここで指定する
const filePath = `Item/${title}.md`
if (await tp.file.exists(title)) {
// すでに存在するファイルの場合はエラートーストを表示して終了する
new Notice(`⚠️Error: ${filePath} is already existed.`)
return
}
// 本文のテンプレートを記載する
const noteBody = `## タイトル
- point1
- point2
`
// ファイルを本文とともに作成
await app.vault.create(filePath, noteBody)
// 作成したファイルを開く
// 第3引数は、true: 新しいペインで開く / false: 現在のペインで開く
await app.workspace.openLinkText("", filePath, true)
%>
```
> [!hint]- テンプレートの内容を動的に変更する
> [[Templater]]のテンプレートには[[JavaScript]]が使えます。そのため、本日の日付や現在の時間など動的な情報を自由に設定できます。また、[[Templater]]には便利なメソッドがいくつか用意されています。
>
> たとえば、現在の日付を`2022/08/03`のような形式で埋め込みたい場合は、以下のコードを記載します。
> ```js
> const date = tp.date.now("YYYY/MM/DD")
> ```
>
> 私がよく使うものは、[[📕Templaterでよく使うコマンド・スニペット]]にまとめていますので、よろしければご覧ください。
> [!caution]
> `filePath`で指定したディレクトリが存在しない場合は、[[Vault]]ルート配下にファイルが作成されます。真面目に実装するならディレクトリの存在チェックを行うべきですが、そこまでする必要はないため省略しています。
あとは`Open Insert Template modal`コマンドを実行します。
![[Pasted image 20220803222013.png]]
`⛩️Create Template File`を選べばダイアログが表示されます。
![[Pasted image 20220803222104.png]]
ファイル名を入力して`Enter`を押せば、`Items`ディレクトリ配下に`新しいファイル2.md`が作成され、あらかじめ指定したテンプレートの内容と共に開かれます。
![[Pasted image 20220803222213.png|frame]]
> [!info] コマンドにホットキーを登録する方法
> [[Templaterで作成したコマンド(スクリプト)をホットキーで実行する方法]] を参考にしてください。