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 弹窗收集信息,填进属性区;光标依次跳过每个待填字段。录入一篇文献的固定流程从「复制模板改五处」变成「一路回车」。

模板工作流的工程纪律

模板是写给自己未来用的代码,三条纪律保持它不腐化:

  1. 模板库有目录:90-模板/ 下按用途分子文件夹(日记、会议、文献、项目),README 索引一篇说明每个模板的用途和触发方式。
  2. 变量即文档:模板里用 %% %% 注释标明每个动态部分的含义,Templater 语句比 {{date}} 难读得多。
  3. 改模板先备份:模板会影响之后所有新建笔记,大改前复制一份带日期后缀的旧版,出问题能回滚。

新手常见弯路提醒:不要一上来追求全自动——自动化程度越高,出问题时排查成本越高。先用官方 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 官方帮助文档。