239 lines
5.2 KiB
Markdown
239 lines
5.2 KiB
Markdown
# 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") %>
|