模板语法
LifeOS 现在有两套模板语法,需要按你使用的版本区分:
- LifeOS Pro / Aino LifeOS:使用内置模板语法,例如
{{snapshot:Project}}、{{date}}、{{tags}}。这套语法不依赖 Templater。 - 社区版 / 开源版 LifeOS:只支持旧的 Templater 语法,例如
<% LifeOS.Project.snapshot() %>。如果你使用开源版本,不要把模板替换成新语法。
基础变量
这些变量可以放在周期笔记模板和主题笔记模板里:
周内日期变量
在周记模板里,可以用 {{monday:FORMAT}} 到 {{sunday:FORMAT}} 引用当前周的每一天。中文环境默认按周一到周日计算;如果你在设置中修改了周起始日,会按设置计算。
例如,日记文件名是 YYYY-MM-DD 时:
如果你的日记文件名是 YYYYMMDD dddd,也可以写成:
快照变量
LifeOS Pro 的快照变量写法是:
它会生成对应目录下主题索引文件的编号列表。例如 {{snapshot:Project}} 会扫描项目目录,找到每个项目文件夹里的索引文件,然后生成:
如果你使用的是 *.README.md 索引模式,LifeOS Pro 会按当前设置寻找索引文件。
条件块
可以按工作日 / 周末切换模板内容:
weekday 指周一到周五。周六、周日会使用 {{else}} 后的内容;没有 {{else}} 时,周末会输出空内容。
周期笔记示例
主题笔记示例
创建主题笔记时,{{tags}} 会被替换成当前主题标签。写成正文标签时,通常要自己加上 #:
社区版 / 开源版兼容语法
社区版 / 开源版 LifeOS 依赖 Templater,只支持旧写法:
主题标签仍使用 Templater 的 frontmatter 变量:
如果你维护的是开源版仓库或旧版示例库,请继续使用这套旧语法,并确保 Templater 已启用 Trigger Templater on new file creation。
迁移安全规则
当你使用"检查并安全迁移"功能将旧模板转换为新语法时,请注意:
- 自动迁移只会更新无残留脚本的模板。如果你的模板中只包含
tp.date.now、tp.frontmatter.tags、tp.file.title、snapshot()等已识别的旧语法片段,迁移会自动完成。 - 含自定义 JavaScript 脚本的模板不会被自动修改。模板中如果包含
<%* let ... %>、<% if ... %>、tp.user.*等自定义 Templater 脚本,系统不会自动写入,避免破坏你的自定义逻辑。 - 可以在设置页随时重新检查。打开设置 → 周期笔记或主题笔记页,点击"!"按钮并选择"检查并安全迁移",即可重新扫描模板的最新状态。
- 手动改写建议:如果你的模板依赖
.weekday()等日期判断,可以用{{if weekday}}...{{else}}...{{endif}}替代。如果你的模板依赖其他 Templater 插件或复杂脚本,建议继续保留 Templater,或手动把这些脚本改写为 LifeOS 原生语法后再迁移。