模板进阶玩法:在模板里用 Templater 变量,同步时自动填日期、随机配图
模板进阶:在模板里用 Templater 变量,同步时自动填日期、随机配图
如果你已经在用 {{{title}}}、{{{content}}} 这类模板变量(没用过的话先看《模板变量完全指南》),你已经能让每篇笔记按固定格式落盘了。但有些东西是「变量表里没有、得当时算一下才知道」的,比如:
- 今天是几号(同步那一刻的日期)
- 「去年今日」是哪天,做成一个双链
- 随机来一张配图,让每篇笔记开头不单调
这类「同步时才算得出」的内容,用一个免费的 Obsidian 社区插件 Templater 就能实现:模板里多写一类用 <% %> 包起来的变量,同步落盘那一刻自动算成真实内容。
一、先看效果
比如把文章模板写成这样:
---
日期:: <% tp.date.now("YYYY-MM-DD") %>
---
 %>)
{{{content}}}
同步后落盘的笔记就是:
---
日期:: 2026-10-12
---

(文章正文……)
<% %> 的位置变成了算出来的值,{{{content}}} 照常填入正文——两类变量可以混着用,先算 <% %>,再填 {{{ }}}。
二、准备:装一次 Templater 插件就好
🔔 本功能需要「满血版」插件。「笔记同步助手」在 Obsidian 里有两个发行版本,看第三方插件列表里的名字就能区分:显示中文名「笔记同步助手」的是满血版,功能齐全;从官方插件市场一键安装、显示拼音名「Bi Ji Tong Bu」的是商店版,少一些高级功能——Templater 变量接力只有满血版提供,商店版里模板中的
<% %>会一直保持原样、不会渲染成值。 还没有满血版?照《安装教程》方法一:下载安装包手动安装或方法三:先装 China BRAT 再一键安装装一个即可。
- Obsidian 设置 → 第三方插件 → 浏览,搜 Templater,安装并启用。
- 不用改它的任何设置。笔记同步助手只在后台借用它的变量计算能力,不会动你的文件、也不需要你配置模板文件夹。
没装 Templater 会怎样?——什么都不影响:同步照常完成,模板里的 <% %> 会原样留在笔记里(编辑模式能看到源码)。装好启用之后,下一次同步的新内容开始自动渲染;已经落盘的旧笔记不会被回头改写。
设置页也帮你想到了:模板输入框下方有实时提示——检测到你用了 Templater 变量但插件没装,会提示「安装并启用 Templater 插件后,同步时会把 <% %> 插值渲染成值」。
本功能需「笔记同步助手」3.2.5 及以上版本(2026 年 8 月起的新版本都带)。
三、哪些模板里支持
| 模板 | 在设置的哪里 |
|---|---|
| 文章模板 | 路径设置 → 模板设置 |
| 助手消息模板 | 路径设置 → 消息处理 |
| 合并文件模板(文件头) | 路径设置 → 消息处理(什么是文件头) |
| 单篇消息正文模板 / 单篇消息笔记属性模板 | 消息处理 → 开启「消息单独设置」后 |
| 邮件正文模板 / 邮件笔记属性模板 | 开启邮件单独配置后 |
文件夹、文件名里不能写(特意限制的)
文件夹、文件名这类路径设置不支持 Templater 变量。原因很实际:路径要的是「同一篇文章每次算出来都是同一个地方」,而 Templater 变量里有不少是每算一次变一个值的(随机图、精确到秒的时间)——真放进去,同一篇文章每次同步会落到不同的文件里,库里会冒出一堆重复文件。
路径设置请继续用 {{{date}}}、{{{title}}} 这类变量(见《模板变量完全指南》)。
四、常用写法
| 想要什么 | 这样写 |
|---|---|
| 今天的日期 | <% tp.date.now("YYYY-MM-DD") %> |
| 精确到分钟的时刻 | <% tp.date.now("YYYY-MM-DD HH:mm") %> |
| 「去年今日」的双链 | [[<% tp.date.now("YYYY-MM-DD", -365) %>]] |
| 一张随机配图 | <% tp.web.random_picture("512x384", "landscape") %> |
| 你在 Templater 里自定义的变量 | tp.user.你的变量名 |
Templater 绝大多数「取值」类的变量都能用。具体还有哪些可以翻 Templater 自己的文档,只要写法是 <% %> 中间放一个「算出值的式子」,这里都支持。
五、两种「日期」别用混
<% tp.date.now(...) %> 和 {{{dateSaved}}} 都能给出日期,但含义不同:
<% tp.date.now(...) %> | {{{dateSaved}}} | |
|---|---|---|
| 是什么 | 同步那一刻的日历时间 | 每条内容自己的保存时间 |
| 谁的值 | 同一轮同步进来的所有内容共用一个值 | 每条内容各是各的 |
| 什么时候变 | 每次同步都可能变 | 保存后就不变 |
| 适合 | 模板性的装饰(「本轮同步日」) | 给内容标注「它是哪天存的」(推荐日常用这个) |
合并文件模板再补充一点:它的 <% %> 取值是「新建该文件那一刻」的——文件头只在新建时写一次,之后不会改写,这和合并文件模板本来的规则一致(见《合并消息模式》)。
六、这些写法不支持(防坑指南)
设置页会实时提示,但提前知道更省事:
<%*开头的「执行块」——网上抄来的模板经常带。这类段落不是「算个值」,而是能执行一串动作(改名、移动、新建文件),放进来会把你的文件结构改乱。笔记同步助手不执行它们,原样保留在笔记里,你能看见没生效的源码。tp.file.*、tp.frontmatter.*(改文件 / 读文件类)——同步时目标文件往往还没创建,算不出正确结果,不支持。- 弹窗类(比如
tp.system.prompt)——同步在后台跑,弹出来的窗没人点,会一直卡住。这类一律不执行。 <%没有配对的%>——Templater 遇到会放弃整个模板的渲染。设置页会提示你补全。
对应的提示长这样:
- ℹ️ 检测到 Templater 变量:安装并启用 Templater 插件后,同步时会把 <% %> 插值渲染成值。
- ⚠️ 不支持 <%* 执行块:这些段落会原样保留在笔记里,不会被执行。
- ⚠️ 不支持的 Templater 调用(会原样保留在笔记里):tp.file.*
七、失败了会怎样
原则是绝不耽误你的同步:
- Templater 没装 / 没启用 / 渲染出错 / 计算超时(约 20 秒)——标签原样落盘,同步照常完成,不中断、不丢内容。
- 你在笔记里看见
<% %>源码,就说明这一轮没渲染成。装好 Templater 下轮生效;或者干脆把模板里的标签删掉。 - 手机端:Templater 装在哪台设备、哪台设备同步时就会渲染;没装的设备按上面的规则原样保留。
常见问题
笔记里出现 <% %> 源码怎么办?
多半是这台设备没装或没启用 Templater。装上启用,下一次同步的新内容就会自动渲染;旧笔记不会被回头改写,介意的话手动删掉那些标签。
为什么我网上抄的模板没生效?
先看设置页模板框下方的提示。网上模板最常见的两类问题:带 <%* 执行块、带 tp.file.*——都会被原样保留(见上面第六节),这是防止抄来的模板改动你的文件。
一轮同步进 20 篇文章,随机配图会每篇不一样吗?
不会。模板每轮同步只计算一次,同一轮的所有内容共用同一张随机图、同一个时刻——几十条内容如果各算一次,一条就要多等一次网络。想要不同的图,分几轮同步,或者去掉随机图改用固定 banner。
会不会拖慢同步?
正常不会。模板每轮只算一次,日期这类计算瞬间完成。只有随机图这种要联网的会慢一点,网络差时最多等约 20 秒就放弃、原样保留,不会卡住整轮同步。
和 {{{ }}} 变量能混着用吗?
能,而且推荐这么用:<% %> 负责「同步那一刻才算」的内容,{{{ }}} 负责「每条内容自己的」信息。渲染顺序是先算 <% %>,再填 {{{ }}}。