Obsidian插件篇-Templater插件

Obsidian插件篇-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属性以及插入模板等多项操作。

Templater参考文档

Templater文档