Templater 与模板工作流
官方 Templates 插件负责「插入固定内容」,Templater 则负责「生成会思考的内容」:动态日期运算、光标跳位、条件逻辑、自动命名、甚至新建笔记时自动套模板。它是社区插件里与 Dataview 齐名的效率基石。本章讲清两者的分工、Templater 的核心语法和三个递进的工作流案例。
先分清:Templates 还是 Templater
| 能力 | 核心插件 Templates | 社区插件 Templater |
|---|---|---|
| 插入固定内容 | 支持 | 支持 |
| 日期时间变量 | {{date}} {{time}} |
<% tp.date.now() %> 系列 |
| 光标落点控制 | 不支持 | tp.file.cursor() |
| 日期运算(明天、下周一) | 不支持 | 支持 |
| 读取当前文件名/路径 | 仅 {{title}} |
完整文件元信息 |
| 条件与循环 | 不支持 | 支持 |
| 新文件/日记自动触发 | 不支持 | 可配置 |
结论:轻需求用 Templates,零学习成本;一旦发现自己在「手动改模板里的日期」或「想要插入后自动跳到下一个待填处」,就该换 Templater。两者共存不冲突,Templater 安装后可在其设置里指定自己的模板文件夹,与官方模板目录分开管理。插件具体语法以其官方文档为准,本章示例覆盖最常用的部分。
核心语法三十秒入门
Templater 用 <% %> 包裹动态语句,tp 是内置对象。记住这几个就够起步:
<% tp.date.now("YYYY-MM-DD") %> → 今天,2026-10-22
<% tp.date.now("YYYY-MM-DD", 1) %> → 明天
<% tp.file.title %> → 当前笔记文件名
<% tp.file.cursor(1) %> → 插入后光标停在这
<% tp.system.prompt("项目名?") %> → 弹窗询问并填入
一个动态晨间日记模板:
---
tags:
- 日记
date: <% tp.date.now("YYYY-MM-DD") %>
---
# <% tp.date.now("YYYY-MM-DD dddd") %>
## 今日三件事
- [ ] <% tp.file.cursor(1) %>
- [ ]
- [ ]
## 昨日遗留(<% tp.date.now("YYYY-MM-DD", -1) %> 的日记)
![[<% tp.date.now("YYYY-MM-DD", -1) %>]]
这个模板做了三件智能的事:自动填日期和星期、光标直接落在第一条任务上开写、自动嵌入昨天的日记——「昨日遗留」环节由此从手动抄写变成自动呈现。
三个递进工作流案例
案例一:一键会议纪要。 建一个「会议纪要」模板,包含日期、参会人属性骨架、议题区和行动项区(行动项用 - [ ] 并打上 #任务/会议 标签)。配合 Templater 的 folder templates(文件夹模板)功能:设置里指定「20-项目/会议」文件夹的新建笔记自动套用该模板——以后每次在这文件夹建笔记,纪要骨架秒出现。
案例二:动态周记。 周记模板里用日期运算生成一周的日期:
# 周记 <% tp.date.now("YYYY [周]ww") %>
## 本周日记索引
![[<% tp.date.now("YYYY-MM-DD", -6) %>]]
![[<% tp.date.now("YYYY-MM-DD", -3) %>]]
![[<% tp.date.now("YYYY-MM-DD", 0) %>]]
## 本周复盘
<% tp.file.cursor(1) %>
按星期日写周记的习惯,点一下就生成自动嵌好本周日记的周记页。想自动汇总全周任务则交给 Dataview,两者是天作之合。
案例三:交互式文献笔记。 模板开头用 tp.system.prompt("论文名?") 和 tp.system.suggester 弹窗收集信息,填进属性区;光标依次跳过每个待填字段。录入一篇文献的固定流程从「复制模板改五处」变成「一路回车」。
模板工作流的工程纪律
模板是写给自己未来用的代码,三条纪律保持它不腐化:
- 模板库有目录:
90-模板/下按用途分子文件夹(日记、会议、文献、项目),README 索引一篇说明每个模板的用途和触发方式。 - 变量即文档:模板里用
%% %%注释标明每个动态部分的含义,Templater 语句比{{date}}难读得多。 - 改模板先备份:模板会影响之后所有新建笔记,大改前复制一份带日期后缀的旧版,出问题能回滚。
新手常见弯路提醒:不要一上来追求全自动——自动化程度越高,出问题时排查成本越高。先用官方 Templates 把「固定骨架」跑顺,再逐步把「重复修改的痛点」逐个换成 Templater 动态语句,每次只换一处。模板系统稳固后,下一章的十大必装插件清单里,你会看到它与 Dataview、日历等插件如何协同成完整生态。
Templater 的自动化全景
除了手动插入,Templater 的真正威力在「触发自动化」,把零散的功能拼成一张自动化网:
- 新建笔记自动套模板(folder templates):指定文件夹与模板的映射,进特定文件夹建笔记自动填骨架。会议纪要、文献笔记、项目主页都适用。
- 每日日记自动触发:配合 Daily notes 的模板位置,用 Templater 接管日记模板,获得官方模板给不了的日期运算和光标跳位。
- 启动触发:可配置 Obsidian 启动时执行一段模板逻辑,比如自动打开今日笔记——晨间流程的自动第一站。
- 文件名函数:
tp.file.title配合日期格式,可以做到「新建笔记自动按今天日期命名」,日记、周报类笔记的命名从此免手动。
这些触发器共同的特点是「把固定动作交给系统,人只做判断」。判断一下你的日常工作流:哪几类笔记的创建过程是机械重复的?那就是自动化的候选清单。
模板生态:借用与分享
不必所有模板都从零写。Templater 社区有大量现成模板可以借——官方论坛的模板分享区、GitHub 上搜 Templater template、以及各类 Obsidian 工作流分享文章,晨间日记、周报、读书卡片这些高频模板都有成熟版本。借用的正确姿势:先看懂再抄,把别人的动态语句逐个换成自己的字段名和文件夹路径,跑通一次再纳入日常。
分享自己的模板同样有价值:模板文件就是普通 Markdown,加上简短的变量说明就能发帖交流。一个实用的小习惯——在你的模板库放一篇 README,说明每个模板的用途、触发方式和已知坑,这既方便未来的自己,也让换设备迁移时模板资产可以完整交接。
何时止步:自动化的收益递减
最后说清楚自动化的边界。Templater 能做的事很多,但收益递减来得很快:第一层自动化(固定骨架、自动日期)几乎人人受益;第二层(交互弹窗、条件分支)适合高频流程;第三层(嵌套逻辑、复杂脚本)只值得维护者本人使用——三个月后你自己都看不懂的逻辑,再精巧也是负资产。
判断标准很简单:这个自动化每周省下的时间,是否大于它未来可能的维护成本。一个每天省 30 秒的模板值得做,一个每周只触发一次却需要 20 行脚本逻辑的模板,直接手动做。工具的复杂度应该花在高频路径上,这是所有效率系统共通的铁律。
二十分钟装上并写出第一个动态模板
给一条可照做的上线路线。第 1-4 分钟:社区插件市场安装 Templater 并启用;设置里打开 Trigger Templater on new note creation,Template folder 指向你的模板文件夹。第 5-12 分钟:建第一篇动态模板——新建笔记《日记模板-v2》,贴入本章的晨间日记模板原文(含 <% tp.date.now() %> 系列语句),保存后切换 Source mode 检查语句完整。第 13-17 分钟:测试——手动把 Daily notes 的 Template file location 指向这篇新模板,点开今日日记(或新建一篇),确认三件事:日期自动填对、昨日日记嵌入成功、光标落在第一条任务上。第 18-20 分钟:顺手配一个 folder template——设置里把「20-项目/会议」文件夹映射到你的会议纪要模板,在该文件夹新建一篇笔记验证自动触发。
走完这二十分钟,你已经用上了 Templater 百分之八十的常用能力:动态日期、日期运算、光标跳位、嵌入生成、文件夹自动触发。剩下的语法属于「需要时查」——官方文档的函数参考是你的工具箱,而不是必修课。模板系统的成熟标志是:你不再记得模板的存在,因为新建笔记永远直接是「该有的样子」。
延伸阅读:模板自动化的极致形态是脚本化,Claude Code 完全指南 展示了命令行侧的自动化全景;模板语句里的正则与文本处理,正则表达式从入门到精通 是必备参考。
本章由 WorkBuddy 原创整理,功能行为依据 Obsidian 官方帮助文档。
