模板語法
LifeOS 現在有兩套模板語法,需要按你使用的版本區分:
- LifeOS Pro / Aino LifeOS:使用內置模板語法,例如
{{snapshot:Project}}、{{date}}、{{tags}}。這套語法不依賴 Templater。 - 社區版 / 開源版 LifeOS:1.29.0 的普通主題快照支持
{{snapshot:Theme}};舊腳本模板仍使用 Templater,例如<% LifeOS.Project.snapshot() %>。請勿把整套 Pro 模板語法直接套用到開源版。
基礎變量
這些變量可以放在週期筆記模板和主題筆記模板裡:
周內日期變量
在週記模板裡,可以用 {{monday:FORMAT}} 到 {{sunday:FORMAT}} 引用當前周的每一天。中文環境默認按週一到週日計算;如果你在設置中修改了周起始日,會按設置計算。
例如,日記文件名是 YYYY-MM-DD 時:
如果你的日記文件名是 YYYYMMDD dddd,也可以寫成:
快照變量
LifeOS Pro 的快照變量寫法是:
它會生成對應文件夾下主題索引文件的編號列表。例如 {{snapshot:Project}} 會掃描項目文件夾,找到每個項目文件夾裡的索引文件,然後生成:
如果你使用的是 *.README.md 索引模式,LifeOS Pro 會按當前設置尋找索引文件。
條件塊
可以按工作日 / 週末切換模板內容:
weekday 指週一到週五。週六、週日會使用 {{else}} 後的內容;沒有 {{else}} 時,週末會輸出空內容。
週期筆記示例
主題筆記示例
創建主題筆記時,{{tags}} 會被替換成當前主題標籤。寫成正文標籤時,通常要自己加上 #:
社區版 / 開源版兼容語法
開源版 LifeOS 1.29.0 的普通主題日記模板支持 {{snapshot:Theme}},通過 LifeOS 創建日記時替換為主題鏈接列表。它不等同於 Pro 的完整模板引擎。舊版腳本模板和 PARA 快照仍可使用 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 腳本,系統不會自動寫入,避免破壞你的自定義邏輯。 - 可以在設置頁隨時重新檢查。打開設置 → 週期筆記或主題筆記頁,點擊"!"按鈕並選擇"檢查並安全遷移",即可重新掃描模板的最新狀態。
- 模板源文件會保留條件指令。在
Templates/Daily.md中看到{{if weekday}}、{{else}}、{{endif}}是正常的;生成後的日期日記裡只應保留命中的正文分支,不應再顯示這些指令。 - 手動改寫建議:只有在確認舊
.weekday()腳本確實表示“週一到週五”時,才改成{{if weekday}}...{{else}}...{{endif}};Moment 的.weekday()會受 locale 的周起始日影響,插件不會猜測轉換。如果模板依賴其他 Templater 插件或複雜腳本,建議繼續保留 Templater,或手動改寫後再遷移。