Files
my-vault/06_Metadata/Reference/Templater-User-Guide.md
T
windyboy f44f8b8e6a feat(daily): add daily note creation workflow and documentation
Add comprehensive daily note system with multiple creation methods:

- Add daily-note.js script for CLI-based daily note creation
- Add daily-note npm command to package.json
- Create DAILY_NOTE_GUIDE.md with complete workflow documentation
  - Three creation methods: CLI, Templater, QuickAdd
  - Step-by-step usage instructions
  - Recommended daily workflows
  - Troubleshooting guide

Add new reference documentation:
- GIT_WORKFLOW.md: Git workflow best practices
- PARA_METHOD.md: PARA method explanation
- TROUBLESHOOTING.md: Extended troubleshooting guide
- AGENTS.md: Agent coding guidelines and commands
- QUICK_REFERENCE.md: 1-page quick reference card
- REFACTOR_SUMMARY.md: Refactoring summary

Organize reference docs:
- Move Templater guides to 06_Metadata/Reference/
- Move Obsidian plugins manual to 06_Metadata/Reference/
2026-01-06 14:16:07 +08:00

251 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Templater 使用指南
created: 2026-01-05
updated: 2026-01-05
tags:
- obsidian
- templater
- guide
- reference
type: reference
---
# 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") %>