tags: TODO: public: true

1. 准备工作

  • 安装并启用 Templater 插件。
  • 在库中创建一个文件夹(例如 _scripts)。
  • 设置 -> Templater -> Script files folder location 中,选中该文件夹。

2. 创建脚本

Scripts 文件夹中新建文件 add_mod_date.js,复制以下代码:

/**
 * 逻辑:如果今天的日期不在文件的 mod_history 属性中,则追加进去。
 */
async function add_mod_date(tp) {
    const file = tp.file.find_tfile(tp.file.path(true));
    const today = moment().format("YYYY-MM-DD");
    const propName = "edit"; 

    await tp.app.fileManager.processFrontMatter(file, (frontmatter) => {
        // 初始化或规范化数组
        if (frontmatter[propName] === undefined) {
            frontmatter[propName] = [];
        }
        if (!Array.isArray(frontmatter[propName])) {
            frontmatter[propName] = frontmatter[propName] ? [frontmatter[propName]] : [];
        }
        // 去重添加
        if (!frontmatter[propName].includes(today)) {
            frontmatter[propName].push(today);
            frontmatter[propName].sort(); // 可选:排序
            new Notice(`已记录修改日期: ${today}`);
        } else {
            // new Notice(`今天已记录过`); // 可选:静默模式可注释此行
        }
    });
}
module.exports = add_mod_date;

3. 创建调用模版

在你的模版文件夹中新建一个笔记(如 工具-更新修改历史.md),写入:

<% tp.user.add_mod_date(tp) %>

4. 绑定快捷键 (关键步骤)

由于模版默认不显示在快捷键列表,需先注册:

  1. 打开 设置 -> Templater
  2. 找到 Template Hotkeys 区域。
  3. 点击 Add new hotkey for template,选择刚才创建的 工具-更新修改历史.md,点击 + 号。
  4. 转到 设置 -> 快捷键 (Hotkeys)
  5. 搜索 Templater: Insert template,找到刚才注册的条目,设置快捷键(如 Alt+S)。

5. Dataview 汇总 (用于日记)

在你的 日记模版 中加入以下查询,即可自动列出历史记录包含该日记日期的文件:

TABLE file.mtime as "最后修改时间"
FROM ""
WHERE contains(mod_history, string(this.file.day))
AND file.name != this.file.name
SORT file.mtime desc

6. 使用流程

  1. 日常修改:修改某文件后,按下快捷键(Alt+S)。
  2. 自动记录:文件的 YAML 属性 mod_history 会自动增加今天的日期(如 2026-01-09)。
  3. 日记回顾:打开 2026-01-09 的日记,Dataview 会自动抓取所有在该日期打过卡的文件。