Obsidian 插件篇 -Templater 插件
本篇文章针对 Templater 插件进行介绍梳理,主要包括需求分析、与自带模板的对比、插件核心功能、实际运用示例以及 Templater 插件的联用。原文地址:Obsidian插件篇-Templater插件。
需求分析
- 痛点:
- 日常使用 Obsidian 时,我们经常需要创建格式相似的笔记,例如会议记录、读书笔记等。
- 手动输入非常繁琐,且容易出错。希望能够使用模板自动生成,仅专注内容的产出。
- 解决方案:
- Templater 插件可以创建和使用模板,自动生成具有固定格式的笔记。
- 支持使用变量和脚本,实现更复杂的动态内容生成。
Obsidian 自带模板 VS Templater 插件
- Obsidian 自带模板:
- Obsidian 自带的模板主要用于插入静态内容,即预先定义好的文本片段。不支持动态内容生成,例如自动插入日期、时间、文件名等。
- Obsidian 自带的模板功能相对简单,不支持复杂的逻辑判断和数据处理。
- Templater 插件:
- 动态内容生成:
- Templater 插件支持使用变量和函数,自动生成动态内容。
- 例如,可以使用
tp.date.now()
函数,自动插入当前日期和时间。
- 强大的脚本支持:
- Templater 插件允许你使用 JavaScript 脚本,实现更复杂的逻辑和数据处理。
- 可以根据需要,自定义函数和变量,满足个性化需求。
- 灵活性和扩展性:
- Templater 插件提供了丰富的模板语法和 API,具有很高的灵活性和扩展性。
- 可以根据自己的需求,创建各种复杂的模板,提高工作效率。
- YAML 元数据整合:
- Templater 可以根据 YAML 元数据,动态的生成内容。
- 动态内容生成:
核心功能
- 指定文件夹下新建笔记时自动运行模板。
- 为模板设置快捷键,手动快速运行。
实际运用示例
用于模板
创建示例模板,内容如下:
--- title: <% tp.file.title %> author: huan tags: - test created: <% tp.file.creation_date("YYYY-MM-DD HH:mm:ss") %> modified: <% tp.file.last_modified_date("YYYY-MM-DD HH:mm:ss") %> createdBy: huan --- # <% tp.file.title %>
使用
tp.file.creation_date("YYYY-MM-DD HH:mm:ss")
函数,自动插入笔记创建时间。可以设置 Test 文件夹于此模板关联,新建笔记时即可自动引用模板。
设置模板快捷键,新建笔记后,使用快捷键引用模板。
脚本运用-动态生成内容
- 文件中生成双链
// 快速批量生成双链添加到文件中(Templater插件) // 光标后批量生成双链添加 <% tp.file.cursor_append(app.vault.getFiles() .filter(f => f.path.startsWith("2.Collection/2.Timeline/")) // 过滤指定文件夹下的文件 .filter(f => f.basename != "Timeline Template") // 排除模板文件(可选) .sort((a,b) => a.basename.localeCompare(b.basename)) //按文件名排序 .map(f => `- [[${f.path}|${f.basename}]]`).join('\n')) %>
插件联动
- 联合 Dataview 插件可参考 Obsidian插件篇-Dataview联合Templater脚本示例。
- QuickAdd 插件与 Templater 插件联动,实现按下快捷键后新建笔记,选择路径,填充 yaml 属性以及插入模板等多项操作。