Obsidian 自动添加元数据

Obsidian 官方提供了文件级别的元数据管理能力帮助笔记的管理和阅读。我在使用 Obsidian 搭建[[PKM 系统作用]]的时候为了提升笔记效率,需要能够在笔记创建的时候就可以自动的完成元数据的填写,这篇文章就介绍一下我是怎么实现这件事情。

前置依赖

为了实现上述的能力我用到了两个插件,如果还没有做过 Obsidian 插件安装的可以参考这个官方文档:Community plugins - Obsidian Help

  1. Templater
  2. Hotkeys++

templater 脚本

根据 templater 语法编写了一个自动填充的脚本,如下所示(可以根据自己的需要增删修改 metadata):

---
title: <% tp.file.title %>
date: <% tp.file.creation_date("YYYY-MM-DD HH:mm:ss") %>
modify: <% tp.file.last_modified_date("YYYY-MM-DD HH:mm:ss") %>
author: edony.zpc
tags: 001.computer-technology
aliases: 
---

# <% tp.file.title %>


## References
1. 

配置方法

  1. 在 Obsidian vault 中创建一个模版目录,例如 8.templates
  2. 在第一步创建的目录下创建 markdown 文件,文件自主命名即可
  3. templater 配置,如下图所示三处需要配置:1)指定模版目录;2)打开触发执行;3)配置快捷键;
templater 插件配置

使用方法

  1. 快捷键 cmd/ctrl + N 新建笔记
  2. 修改笔记文件名
  3. templater 中配置的对应模版的快捷键(例如 cmd + 1)自动挡更新元数据
  4. 开始笔记撰写

小工具

这里再提供几个我常用的小工具。

1、更新文件最后修改日期小工具

<%* 
    let updateData = tp.file.last_modified_date("YYYY-MM-DD HH:mm:ss")
    let newContent= tp.file.content.replace(/(modify:)([\s,\d,-,:]+)(.*)/, "modify: "+updateData)
    let file = this.app.workspace.activeLeaf.view.file
    this.app.vault.modify(file, newContent) 
%>

2、自动日记小工具

---
title: <% tp.file.title %>
date: <% tp.file.creation_date("YYYY-MM-DD HH:mm:ss") %>
modify: <% tp.file.last_modified_date("YYYY-MM-DD HH:mm:ss") %>
author: edony.zpc
tags: 005.diary
aliases: 
---

# <% tp.file.title %>
> ==[[<% tp.date.now("YYYY") %>]]==,壬寅年,我在杭州。记录自己的生活,经历自己的生命,观察这个可爱的世界。

<%* 
    let fileName = tp.file.title
    let year = tp.date.now("YYYY")
    let targetFile = tp.file.find_tfile("1.index/index-diary/"+year)
    this.app.vault.append(targetFile, "\n"+"- "+"[["+fileName+"]]")
%>