Obsidian Templater 插件:实现笔记自动化(2026 搭建指南)
在 2026 年搭建 Obsidian Templater 插件:安装配置、构建动态每日笔记与项目模板、按文件夹自动应用模板,并避免常见陷阱。

Obsidian Templater 插件:实现笔记自动化(2026 搭建指南)
模板的价值不仅仅在于节省敲击键盘的次数,更在于消除阻止你创建笔记的阻力。当打开一篇空白的每日笔记意味着需要决定日期格式、重新输入相同的标题、翻找昨天的记录时,你创建笔记的意愿就会降低。而当笔记在打开的瞬间自动构建完成时,你需要做的就只有专注于书写。
这正是 Templater 插件的核心价值所在。它接管了 Obsidian 原生名称容易让人混淆的“Templates(模板)”功能,将其从简单的“查找与替换”升级为一个微型自动化引擎:动态日期、交互式提示框、光标定位以及在笔记创建瞬间自动完成模版化。你无需成为程序员就能享受到它的大部分价值,而那些看似复杂吓人的语法(如 <% %>),在了解后只需十分钟就能轻松掌握。
本指南将带你从全新安装开始,一步步搭建出一个完全自动化的系统——在指定文件夹中新建笔记时,无需动手指即可自动应用模板。以下是我们将涵盖的内容:
- Templater 与原生 Templates 插件的区别,以及应当保留哪一个
- 安装、启用并确认 Templater 正常工作
- 设置并组织你的模板文件夹
- 静态模板 vs. 动态模板,以及
<% %>与<%* %>的区别 - 你真正会用到的核心语法(
tp.date、tp.file、tp.system) - 带有上一天/下一天导航功能的完整每日笔记模板
- 自动将模板应用到指定文件夹中的每一篇新笔记
- 开箱即用的实用模板示例与常见坑点排查
Templater 与原生 Templates 插件:你到底需要哪一个?
对于任何超出插入静态日期范围的需求,你都需要 Templater。Obsidian 内置了一个名称就叫“Templates”的核心插件,它只进行基础的文本替换,即在插入模板时将 {{date}}、{{time}} 和 {{title}} 替换为固定值。仅此而已。没有逻辑判断、没有交互输入、没有计算功能。
Templater 是一款社区插件,它完全替代并极大扩展了这一理念。关键区别在于:
- 语法:原生插件使用
{{date}};Templater 使用<% tp.date.now() %>并且可以运行 JavaScript 代码。 - 动态数值:Templater 在插入时实时计算数值,例如“昨天的日期”或“格式化为星期几的文件标题”。
- 交互式输入:Templater 可以暂停并向你提问(
tp.system.prompt)或弹出选择列表(tp.system.suggester)。 - 按文件夹预设:Templater 可以自动将模板应用到特定文件夹中新建的任何笔记上。
- 光标定位:Templater 能将光标精准停留在你希望开始打字的位置。
你应当禁用原生 Templates 插件吗? 如果在设置交叠的情况下同时运行两者,你会遇到令人困惑的双重替换行为和模板文件夹冲突。清晰的建议是:仅在有其他插件明确依赖它时才保留原生 Templates 插件的启用,否则请将所有实际工作转向 Templater,并停止编写 {{ }} 样式的原生模板。大多数高级用户在切换后会完全禁用原生 Templates,系统不会受到任何影响。要了解模板如何融入整个 Obsidian 系统,我们的 Obsidian 模板入门指南 奠定了基础。
注意:原生插件名叫“Templates”(复数,内置)。社区插件名叫“Templater”(作者为 SilentVoid13)。这两个几乎相同的名称是初学者产生混淆的最大源头。
如何安装并启用 Templater?
你可以在一分钟内从 Obsidian 的社区插件浏览器中安装 Templater。具体路径如下:
- 打开 Settings(设置) → Community plugins(社区插件)。
- 如果看到“Restricted mode(受限模式)”警告,请先点击 Turn on community plugins(开启社区插件)。
- 点击 Browse(浏览),然后搜索 Templater。
- 选择作者为 SilentVoid13 的那款(它的下载量遥遥领先)。
- 点击 Install(安装),然后点击 Enable(启用)。
提示:旧版本的 Obsidian 将此称为“Safe Mode(安全模式)”,并在你禁用它之前隐藏了 Browse 按钮。如果你根本找不到社区插件,请检查该开关是否阻碍了你。
确认其正常工作。 启用后,你应该会在左侧边栏看到一个小的 Templater 图标(一对尖括号)。使用 Ctrl/Cmd + P 打开命令面板并输入“Templater”——你应该能看到诸如 Templater: Open insert template modal 和 Templater: Replace templates in the active file 之类的命令。如果这些命令出现,说明你已准备就绪。
如何设置并组织你的模板文件夹?
Templater 需要将一个文件夹指定为模板库,设置路径为 Settings → Templater → Template folder location。在完成此设置之前,Templater 无法识别哪些笔记是模板。
请按照以下步骤操作:
- 在 Vault 中创建一个名为
Templates的专用文件夹(如果你希望它排在最前面,可以命名为_Templates)。 - 前往 Settings → Templater → Template folder location 并选择该文件夹。
- 将每个模板作为普通的 Markdown 笔记放入其中——文件名就是你在插入列表中看到的名称。
随着模板库的扩大,可以通过子文件夹进行组织,以保持插入选择弹窗的清爽易读:
Templates/Daily/Templates/Meetings/Templates/Projects/Templates/Snippets/(小型的可复用代码/文本块)
提示:在模板文件名前加上类型前缀,例如
meeting-1on1.md或project-new.md。当模板多达二十个时,带前缀的按字母排序列表比花哨的文件名浏览起来要快得多。
静态模板 vs. 动态模板:有什么区别?
静态模板是固定的文本模板,每次插入出来的结果完全相同;动态模板则在插入的瞬间实时计算数值。静态会议笔记每次都固定显示“## 参会人员”。而动态笔记可以自动印上今天的日期、提取文件标题或询问谁参加了会议——每次输出各不相同。
动态行为来源于两种分隔符,混淆它们是初学者最容易踩的坑:
<% %>是 输出 指令。无论其中评估得出什么结果,都会直接打印输出到你的笔记中。例如<% tp.date.now() %>会写入日期。<%* %>(注意星号)仅运行 JavaScript 而不进行打印输出。用于逻辑判断、变量赋值和循环。除非你明确说明,否则不会写入任何文本。
经验法则:如果你希望某个值显示在笔记中,使用 <% %>。如果你在进行逻辑计算或环境设置,使用 <%* %>。常见错误是将产生数值的表达式包裹在 <%* %> 中,然后疑惑为什么什么都没有显示。
今天是 <% tp.date.now("YYYY-MM-DD") %>
<%* const greeting = tp.date.now("HH") < 12 ? "早上好" : "下午好" %>
<% greeting %>,让我们开始工作吧。
第一行打印日期。<%* %> 块静默计算一个变量,最后的 <% greeting %> 将其打印出来。这种“静默计算,显式打印”的分离,就是核心的心智模型。
你真正会用到的 Templater 核心语法是什么?
你仅凭三个函数族就能构建 90% 的实用模板:tp.date、tp.file 和 tp.system。以下是最实用的子集。
日期 (Dates) — tp.date.now() 返回当前日期,你可以控制格式和偏移量:
<% tp.date.now("YYYY-MM-DD") %>→2026-06-05<% tp.date.now("YYYY-MM-DD", -1) %>→ 昨天(第二个参数是天数偏移)<% tp.date.now("YYYY-MM-DD", 1) %>→ 明天<% tp.date.now("dddd") %>→ 星期几的名称,如Friday或星期五
文件信息 (File info) — 提取笔记自身的元数据:
<% tp.file.title %>→ 当前笔记的标题<% tp.file.creation_date("YYYY-MM-DD HH:mm") %>→ 文件创建时间<% tp.file.cursor() %>→ 插入后光标停留的位置(使用tp.file.cursor(1)、tp.file.cursor(2)可在多个位置间按 Tab 键切换)
交互式输入 (Interactive input) — tp.system 会暂停并弹窗询问:
- 自由文本输入:
<% tp.system.prompt("会议标题?") %> - 从列表中选择:
<% tp.system.suggester(["低", "中", "高"], ["低", "中", "高"]) %>—— 第一个数组是显示的文本,第二个数组是返回的值。
---
priority: <% tp.system.suggester(["低","中","高"], ["低","中","高"]) %>
created: <% tp.date.now("YYYY-MM-DD") %>
---
# <% tp.system.prompt("这篇笔记的主题是什么?") %>
<% tp.file.cursor() %>
当你插入该模板时,Templater 会询问优先级、提示输入标题、盖上今天的日期,并将光标停留在正文中。全程无需手动输入上述任何固定格式。一旦笔记带有这样一致的 YAML 前言,它们就能完美融入更大的系统——请参阅我们的 Obsidian 任务管理完整指南。
如何构建每日笔记模板?
每日笔记模板的绝招在于将笔记自身的标题转换为格式化的标题,以及转换为前往前后日期的导航链接。技巧在于:你的每日笔记文件名本身就是一个日期(如 2026-06-05),因此 tp.file.title 可以为 Templater 提供一个日期字符串,供 Moment.js 进行处理。
一份可以直接复制使用的完整每日笔记模板:
---
date: <% tp.file.title %>
type: daily
---
# <% moment(tp.file.title, "YYYY-MM-DD").format("dddd, MMMM Do YYYY") %>
[[<% moment(tp.file.title, "YYYY-MM-DD").subtract(1, "days").format("YYYY-MM-DD") %>|← 昨天]] | [[<% moment(tp.file.title, "YYYY-MM-DD").add(1, "days").format("YYYY-MM-DD") %>|明天 →]]
## 今日焦点
- <% tp.file.cursor() %>
## 待办事项
- [ ]
## 工作日志
## 笔记卡片
背后的运作原理:H1 将文件名重新格式化为易读的星期标题。两个链接利用 Moment 的 .subtract 和 .add 方法构建指向前一天和后一天笔记的双向链接,方便你在日记中前后跳转。光标停留在第一个焦点项目上,随时可以开始打字。
绑定模板。 将你的笔记创建工具指向此模板:
- 使用核心插件 Daily notes:Settings → Daily notes → Template file location → 选择此模板。
- 使用 Calendar 社区插件:它遵循 Daily notes 的模板设置,点击日期即可自动应用。
注意:经典避坑点——如果你是通过手动新建文件并打字来创建每日笔记,而不是通过 Daily notes/Calendar 流程,模板将不会自动应用。有关日记工作流的更多深入内容,请参阅我们的 Obsidian 每日笔记深度指南。
如何自动将模板应用到文件夹中的每篇新笔记?
Templater 的 Folder Templates(文件夹模板)功能可以将选定的模板自动应用到在映射文件夹内部新建的任何笔记中,无需任何手动插入。这是大多数教程遗漏的核心收益:让笔记实现自我模版化。
分两步进行设置:
- 开启触发器。 前往 Settings → Templater 并启用 Trigger Templater on new file creation。如果不开启此项,文件夹模板根本不会生效——这是“怎么不起作用”的最常见原因。
- 映射文件夹。 在 Settings → Templater → Folder Templates 中添加映射,例如
Meetings→Templates/Meetings/meeting-default.md。现在,在/Meetings文件夹中创建的每篇笔记都会立即运行该模板。
需要提前了解的一些注意事项:
- 该触发器仅在 创建文件 时触发,打开或编辑现有笔记时不会触发。
- 如果文件夹模板和 Daily notes 模板试图同时作用于同一篇笔记,可能会产生冲突——请将每日笔记保存在未在 Folder Templates 中映射的独立文件夹中。
- “Trigger on new file creation”会影响所有新建文件,因此非常宽泛的文件夹映射(例如映射整个 Vault)可能会带来意外惊喜。请映射具体的专用文件夹。
正是这种自动化让 Vault 感觉像是一个真正的生产力系统,而不仅仅是一堆 Markdown 文件。如果你希望直接获得预建好的系统,Obsibrain 生产力模板 内置了这些已配置完毕的文件夹模板映射,使会议、项目和每日笔记从第一天起就能自动填充。
实用的真实模板(以及更快的获取方式)
以下是三个可以立即放入 Templates 文件夹的模板。每个模板都结合了前面章节中的语法。
会议笔记 — 提示输入参会人员并提供行动项区域:
---
type: meeting
date: <% tp.date.now("YYYY-MM-DD") %>
attendees: <% tp.system.prompt("参会人员(逗号分隔)") %>
---
# <% tp.system.prompt("会议主题") %>
## 议程
- <% tp.file.cursor() %>
## 讨论内容
## 行动项
- [ ]
项目笔记 — 从选择列表中设置状态前言并搭建里程碑:
---
type: project
status: <% tp.system.suggester(["规划中","进行中","暂停","完成"], ["规划中","进行中","暂停","完成"]) %>
created: <% tp.date.now("YYYY-MM-DD") %>
---
# <% tp.file.title %>
## 项目目标
<% tp.file.cursor() %>
## 里程碑
- [ ]
## 下一步行动
- [ ]
每日笔记 — 上一节中介绍的可导航日记模板,直接复用即可。
对于希望进一步探索的用户,Templater 还支持通过 tp.user.* 使用 用户脚本 (User Scripts) ——即保存在脚本文件夹中并可从任何模板调用的可复用 JavaScript 函数。这在自动从每日笔记生成周复盘等场景中极其强大。通过反向链接将带有模板的笔记连接起来,才能将其转化为真正的知识网络——我们的 Obsidian 链接指南 介绍了如何让这些连接发挥价值。
不过,坦白地说:构建、格式化和调试一整套完整的模板库(会议、项目、每日、每周、习惯追踪)本身就是个浩大的工程。YAML 语法错误、Moment.js 格式错误以及文件夹模板冲突会消耗大量时间。如果你更想要现成的结果而不是搭建的过程,Obsibrain 提供了经过全面测试和配置的模板与仪表盘系统,方便你直接投入使用。如果你只是想找几个模式进行手动复制,我们的 10 个提升生产力的 Obsidian 实用模板示例 文章是一个快速入门库。
常见坑点与故障排查
大多数 Templater 问题都可以追溯到少数几个反复出现的错误。请优先检查以下几点:
- 原生 Templates 插件依然存在冲突。 如果模板行为异常,请确认你是通过 Templater 插入的,而不是通过原生的 Templates 插件。对同一个模板文件夹同时运行两者会导致重复处理。
- 手动创建文件时模板未触发。 文件夹模板仅在通过正常途径创建文件时运行,并且仅在 Trigger Templater on new file creation 开启时生效。在未映射的文件夹中手动输入文件名不会应用任何模板。
<% %>与<%* %>打印输出错误。 如果某个值没有显示出来,你可能在需要打印输出<% %>的地方误用了<%* %>(静默执行)。如果你收到了意料之外的“undefined”或语法错误,很可能是尝试在逻辑块内部进行打印。- 文件夹模板覆盖了每日笔记。 当文件夹模板和 Daily notes 模板同时指向同一篇笔记时,行为会变得不可预测。请分隔它们的文件夹。
- Moment.js 格式 Token 大小写错误。 Token 是区分大小写的:
YYYY(年份)不同于yyyy,MM(月份)不同于mm(分钟),DD(日期)不同于dd。大小写错误是导致日期输出乱码的最常见原因。
常见问题解答
Templater 比 Obsidian 内置的 Templates 插件更好吗?
对于任何动态需求来说,是的。原生 Templates 插件只能对 {{date}} 和 {{title}} 等值进行固定替换。Templater 增加了计算日期、交互式提示框、光标定位、文件夹自动化以及 JavaScript 支持。坚持使用原生 Templates 的唯一理由是,你确实永远不需要除了静态时间戳之外的任何功能。
使用 Templater 需要懂 JavaScript 吗?
不需要,对于大约 90% 的实际使用场景来说完全不需要。tp.date、tp.file 以及 tp.system.prompt/suggester 无需编写一行自定义代码就能覆盖每日笔记、会议、项目和大部分日常模板。只有在编写高级 tp.user.* 脚本时才需要 JavaScript。
为什么我的 Templater 模板没有应用到新笔记上? 几乎总是以下两个原因之一:你没有在 Settings → Templater 中启用 Trigger Templater on new file creation,或者你创建笔记的方式脱离了应用模板的正常流程(对于每日笔记,这意味着使用了手动创建文件而非 Daily notes/Calendar 插件流程)。
Templater 能否自动运行而无需我手动插入模板? 可以。Folder Templates(文件夹模板)会将模板应用到在映射文件夹中创建的每一篇笔记,而 Daily notes/Calendar 设置会在点击日期时应用每日模板。配合新建文件触发器,你的笔记即可实现自我模版化。
让其成为一种习惯
当你不再把模板看作需要手动插入的东西,而是将其视为每篇笔记的默认形态时,Templater 带来的回报最为迅速。安装插件、设置模板文件夹、构建一个每日笔记模板,然后配置一个文件夹模板,让某种类型的笔记实现自动构建。当第一次体验到打开一篇已经结构化的笔记时,你就会被它的便利所吸引。
从那时起,每当你发现自己又在重复输入相同的标题时,就逐步添加一个模板。在一两周内,你就会拥有一个在日常使用中静默消除阻力的简易模板库——如果你希望完全跳过搭建过程,一份 开箱即用的生产力模板 能让你在一个下午就达到理想状态。
继续阅读
探索 Obsibrain 演示版。
看看 Obsibrain 如何融入您的工作方式。通过电子邮件获取演示库,在 Obsidian 中亲自探索。
包含演示版后续邮件及优惠信息。您可以随时退订。 隐私政策