Files
my-vault/06_Metadata/Reference/Templater-User-Guide.md
T

251 lines
5.4 KiB
Markdown
Raw Normal View History

---
title: Templater 使用指南
created: 2026-01-05
updated: 2026-01-05
tags:
- obsidian
- templater
- guide
- reference
type: reference
---
2026-01-05 19:25:56 +08:00
# Templater 使用指南
## 什么是 Templater
Templater 是 Obsidian 最强大的模板插件,它允许你创建动态模板,使用变量、函数和命令来自动化你的笔记创建流程。
## 核心功能
### 1. 基本语法
Templater 使用 `<% %>` 标签来执行代码:
- `<% code %>` - 执行代码但不输出
- `<%= value %>` - 执行代码并输出结果
- `<%* async code %>` - 执行异步代码
### 2. 内置变量
#### 日期和时间
```
<% tp.date.now("YYYY-MM-DD") %> # 当前日期:2026-01-05
<% tp.date.now("HH:mm") %> # 当前时间:14:30
<% tp.date.now("YYYY-MM-DD HH:mm:ss") %> # 完整时间戳
<% tp.date.tomorrow("YYYY-MM-DD") %> # 明天的日期
<% tp.date.yesterday("YYYY-MM-DD") %> # 昨天的日期
<% tp.date.weekday("YYYY-MM-DD", 0) %> # 本周日(0=周日)
```
#### 文件信息
```
<% tp.file.title %> # 当前文件标题(不含扩展名)
<% tp.file.creation_date() %> # 文件创建日期
<% tp.file.folder() %> # 文件所在文件夹
<% tp.file.path() %> # 文件完整路径
```
#### 配置信息
```
<% tp.config.active_file.basename %> # 活动文件名
<% tp.config.active_file.path %> # 活动文件路径
```
### 3. 常用命令
#### 文件操作
```javascript
// 创建新笔记
<%* await tp.file.create_new("模板名", "新文件名", false, "目标文件夹") %>
// 移动文件
<%* await tp.file.move("新路径/新文件名") %>
// 重命名文件
<%* await tp.file.rename("新文件名") %>
// 包含其他文件
<% tp.file.include("[[其他笔记名称]]") %>
```
#### 用户输入
```javascript
// 提示用户输入
<% tp.system.prompt("请输入项目名称") %>
// 建议列表(下拉选择)
<% tp.system.suggester(["选项1", "选项2", "选项3"], ["value1", "value2", "value3"]) %>
```
### 4. 实用示例
#### 示例1:每日笔记模板
```markdown
---
date: <% tp.date.now("YYYY-MM-DD") %>
day: <% tp.date.now("dddd") %>
week: <% tp.date.now("YYYY-[W]WW") %>
---
# <% tp.date.now("YYYY-MM-DD dddd") %>
## 📋 今日任务
- [ ]
## 📝 笔记
## 🎯 重点事项
## 💡 想法与灵感
---
← [[<% tp.date.yesterday("YYYY-MM-DD") %>]] | [[<% tp.date.tomorrow("YYYY-MM-DD") %>]] →
```
#### 示例2:项目笔记模板
```markdown
---
type: project
created: <% tp.date.now("YYYY-MM-DD") %>
status: active
---
# <% tp.system.prompt("项目名称") %>
## 📋 项目概述
<% tp.system.prompt("项目简介") %>
## 🎯 目标
-
## 📅 关键时间节点
- 开始时间:<% tp.date.now("YYYY-MM-DD") %>
- 截止时间:
## 👥 相关人员
-
## 📎 相关资源
-
## 📝 进展记录
### <% tp.date.now("YYYY-MM-DD") %>
-
```
#### 示例3:会议记录模板
```markdown
---
type: meeting
date: <% tp.date.now("YYYY-MM-DD HH:mm") %>
participants:
---
# 会议记录 - <% tp.system.prompt("会议主题") %>
**时间**<% tp.date.now("YYYY-MM-DD HH:mm") %>
**地点**<% tp.system.prompt("会议地点") %>
**参与者**
## 📋 议程
1.
## 📝 讨论内容
## ✅ 行动项
- [ ]
## 🔗 相关资料
```
## 如何使用
### 方法1:快捷键触发
1. 打开设置 → 快捷键
2. 搜索 "Templater: Insert Template"
3. 设置一个快捷键(如 `Ctrl/Cmd + T`
4. 在笔记中按快捷键选择模板
### 方法2:命令面板
1.`Ctrl/Cmd + P` 打开命令面板
2. 输入 "Templater"
3. 选择 "Templater: Insert Template"
4. 选择要插入的模板
### 方法3:创建新笔记时自动应用
1. 在设置中配置 "Folder Templates"
2. 为不同文件夹指定默认模板
3. 在该文件夹创建新笔记时自动应用模板
## 配置建议
### 1. 创建模板文件夹
建议在 `06_Metadata/Templates` 下创建所有模板文件
### 2. Templater 设置
- **Template folder location**: `06_Metadata/Templates`
- **Trigger Templater on new file creation**: ✓ 启用
- **Enable folder templates**: ✓ 启用
### 3. 文件夹模板映射示例
| 文件夹 | 模板 |
|--------|------|
| `00_Inbox` | `quick-note.md` |
| `01_Projects` | `project.md` |
| `02_Areas` | `area.md` |
| `06_Metadata/Daily` | `daily-note.md` |
## 进阶技巧
### 1. JavaScript 代码块
```javascript
<%*
// 可以写多行 JavaScript 代码
const projectName = await tp.system.prompt("项目名称");
const status = await tp.system.suggester(
["进行中", "计划中", "已完成"],
["active", "planned", "completed"]
);
tR += `项目:${projectName}\n状态:${status}`;
%>
```
### 2. 条件逻辑
```javascript
<%* if (tp.file.folder().includes("Projects")) { %>
这是一个项目笔记
<%* } else { %>
这是一个普通笔记
<%* } %>
```
### 3. 循环生成内容
```javascript
<%* for (let i = 1; i <= 5; i++) { %>
## <%= i %> 部分
<%* } %>
```
## 常见问题
### Q: 模板不生效?
A: 检查 Templater 设置中的模板文件夹路径是否正确
### Q: 如何在已有笔记中插入模板?
A: 使用命令 "Templater: Insert Template" 或快捷键
### Q: 可以创建自定义函数吗?
A: 可以!在 Templater 设置中配置 "User Scripts" 文件夹
## 相关资源
- 官方文档:https://silentvoid13.github.io/Templater/
- 示例模板库:查看 `06_Metadata/Templates/` 文件夹
---
**标签**#教程 #Templater #Obsidian #模板
**创建日期**<% tp.date.now("YYYY-MM-DD") %>