模板语法

LifeOS 现在有两套模板语法,需要按你使用的版本区分:

  • LifeOS Pro / Aino LifeOS:使用内置模板语法,例如 {{snapshot:Project}}{{date}}{{tags}}。这套语法不依赖 Templater。
  • 社区版 / 开源版 LifeOS:只支持旧的 Templater 语法,例如 <% LifeOS.Project.snapshot() %>。如果你使用开源版本,不要把模板替换成新语法。

基础变量

这些变量可以放在周期笔记模板和主题笔记模板里:

变量说明
{{date}}当前笔记日期,格式为 YYYY-MM-DD
{{date:FORMAT}}使用 Day.js 格式化当前笔记日期,例如 {{date:YYYY-MM-DD dddd}}
{{date+N:FORMAT}} / {{date-N:FORMAT}}当前笔记日期前后偏移 N 天
{{time}}当前时间,格式为 HH:mm
{{time:FORMAT}}使用 Day.js 格式化当前时间
{{title}} / {{filename}}新建笔记的文件名,不含 .md
{{year}} / {{month}} / {{day}}年、月、日
{{week}} / {{weekYear}}周序号、周所属年份
{{quarter}}季度,例如 Q1
{{periodType}}周期类型:DailyWeeklyMonthlyQuarterlyYearly
{{tags}}创建主题笔记时传入的主题标签,不含开头的 #

快照变量

LifeOS Pro 的快照变量写法是:

{{snapshot:Project}}
{{snapshot:Area}}
{{snapshot:Resource}}
{{snapshot:Archive}}
{{snapshot:Theme}}

它会生成对应目录下主题索引文件的编号列表。例如 {{snapshot:Project}} 会扫描项目目录,找到每个项目文件夹里的索引文件,然后生成:

1. [[1. 项目/项目 A/README|项目 A]]
2. [[1. 项目/项目 B/README|项目 B]]

如果你使用的是 *.README.md 索引模式,LifeOS Pro 会按当前设置寻找索引文件。

条件块

可以按工作日 / 周末切换模板内容:

{{if weekday}}

## 工作日计划

- [ ] 处理今日重点任务
      {{else}}

## 周末回顾

- [ ] 做一次轻量复盘
      {{endif}}

weekday 指周一到周五。周六、周日会使用 {{else}} 后的内容;没有 {{else}} 时,周末会输出空内容。

周期笔记示例

## 项目列表

{{snapshot:Project}}

## 日常记录

%%你的记录%%

## 明日提醒

{{date+1:YYYY-MM-DD}}

主题笔记示例

创建主题笔记时,{{tags}} 会被替换成当前主题标签。写成正文标签时,通常要自己加上 #

---
tags:
  - { { tags } }
---

## 任务

- [ ] #{{tags}} 截止日期 📅 {{date+7:YYYY-MM-DD}}

```LifeOS
TaskListByTag
```

社区版 / 开源版兼容语法

社区版 / 开源版 LifeOS 依赖 Templater,只支持旧写法:

<% LifeOS.Project.snapshot() %>
<% LifeOS.Area.snapshot() %>
<% LifeOS.Resource.snapshot() %>
<% LifeOS.Archive.snapshot() %>

主题标签仍使用 Templater 的 frontmatter 变量:

#<% tp.frontmatter.tags %>

如果你维护的是开源版仓库或旧版示例库,请继续使用这套旧语法,并确保 Templater 已启用 Trigger Templater on new file creation