Obsidian 自动添加元数据
Obsidian 官方提供了文件级别的元数据管理能力帮助笔记的管理和阅读。我在使用 Obsidian 搭建[[PKM 系统作用]]的时候为了提升笔记效率,需要能够在笔记创建的时候就可以自动的完成元数据的填写,这篇文章就介绍一下我是怎么实现这件事情。
前置依赖
为了实现上述的能力我用到了两个插件,如果还没有做过 Obsidian 插件安装的可以参考这个官方文档:Community plugins - Obsidian Help。
- Templater
- 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.
配置方法
- 在 Obsidian vault 中创建一个模版目录,例如
8.templates
- 在第一步创建的目录下创建
markdown
文件,文件自主命名即可 - templater 配置,如下图所示三处需要配置:1)指定模版目录;2)打开触发执行;3)配置快捷键;
使用方法
- 快捷键
cmd/ctrl + N
新建笔记 - 修改笔记文件名
- templater 中配置的对应模版的快捷键(例如
cmd + 1
)自动挡更新元数据 - 开始笔记撰写
小工具
这里再提供几个我常用的小工具。
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+"]]")
%>