关于 Obsidian (markdown) Front matter 看了网上很多教程,但是并没有特别满意,尤其是关于格式规范并没有很多讲解,插件也没有最新的评测,于是有了这篇笔记。
为了不被花里胡哨的插件折磨,保证够用的前提下,笔记应该尽可能简洁,插件应尽可能少。本文将主要介绍一个插件(Linter)在 front matter 中的应用。
目录
Front matter 是什么?为什么要用它?
Linter 插件
快捷键
插入想要的 Front matter
删除特定的 Front matter key
时间日期设置
修改日期 (date modified) 怎么自动更新?
怎么批量插入/修改/删除 Front matter
整理井号标签到 Front matter 内
建议在 Front matter 后加一行空行
Front matter 命名规范
Front matter 规则,YAML 是什么?
Front matter 应该包含哪几项?
日期时间到底用什么格式?
其他参考链接
Front matter 是什么?为什么要用它?
Front matter 在markdown文件的最前方,是用三横杠包裹的一段信息,大概长这个样:
---
tags:
- obsidian
- 笔记
date created: 2025-03-04 09:45:15
date modified: 2025-03-04 09:57:36
---
目的:用来给markdown文件添加属性,如 标签、创建日期、修改日期、别名、备注、链接等,使得文件更规范化,包含更多信息。
如果经常在不同设备同步笔记,笔记从云端下载到本地后,'.md' 文件的创建日期可能会变成下载的日期,真正的创建日期丢失了,而 fornt matter 就可以解决这个问题,因为front matter 是包含在笔记内容里的,同步前后的笔记内容是不会变的。
Linter 插件
Linter 可以按照自定义的规则去修改文件,需要先设定规则,再修改。
最简单,普通人最友好的插件,对于大部分人来讲,关于 front matter 部分只需要这1个插件就够了。(它还可以整理文件的各种格式,各位如果有兴趣我再写一篇笔记介绍它的格式整理。)
linter 官方链接 (YAML front matter部分) [YAML Rules - Linter](https://platers.github.io/obsidian-linter/settings/yaml-rules/)
另一个常用的是 Templater 插件,较为复杂,此处不做介绍。
快捷键
Linter 可以按照自定义的规则去修改文件,需要先设定规则,再修改。
Linter: Lint the current file:修改当前文件(建议绑定快捷键,我的设置为 alt+s)。
Linter: Lint all files in the current folder :修改当前文件夹内的文件(建议不要绑定快捷键,预防无意间批量修改)。
Linter: Lint all files in the vault:修改库内的所有文件(建议不要绑定快捷键,预防无意间批量修改)。
ctrl +p 可以呼出命令菜单,如果需要批量修改可以在此处查找。
插入想要的 Front matter
`Linter - YAML - Insert YAML attributes`
在 Text to insert 右侧输入想要的 front matter key,此处可以自定义顺序,可以包括 date created
我的设置如下:
tags:
date created:
date modified:
最后 快捷键 Lint the current file
删除特定的 Front matter key
`Linter - YAML - Remove YAML Keys`
时间日期设置
`Linter - YAML - YAML Timestamp`
打开 `date created` 和 `date modified`
我的时间格式: `YYYY-MM-DD HH:mm:ss`
`Date Created Source of Truth`: 第一次批量添加的时候可以选择 filesystem,后续可以关掉或者改成 YAML frontmatter,目的是为了避免多平台同步笔记的时候文件的创建时间不同引起的冲突。
修改日期 (date modified) 怎么自动更新?
`Linter - YAML - YAML Timestamp - Update YAML Timestamp on File Contents Update`
个人设置的15秒更新
怎么批量插入/修改/删除 Front matter
linter 插件可以修改整个库的文件( Lint all files in the vault),或者某个文件夹的文件(Lint all files in the current folder)。
搭配前面的插入或者删除设置,就可以做到一键批量插入/删除
ctrl +p 可以呼出命令菜单,如果需要批量修改可以在此处查找。
整理井号标签到 Front matter 内
`Linter - YAML - Move Tags to YAML`
建议在 Front matter 后加一行空行
`Linter - YAML - Add Blank Line After YAML`
建议打开,保证格式规范
Front matter 命名规范
Front matter 规则,YAML 是什么?
[Properties - Obsidian Help](https://help.obsidian.md/properties#Property+format)
[The Official YAML Web Site](https://yaml.org/)
Front matter 应该包含哪几项?
Obsidain 官方自带的三种 key:`tags`、`aliases` 和 `cssclass`
Joplin 导出的笔记包含这4项:`title` 、`updated`、`created` 和 `tags`
对我来说(tags,date created,date modified)这三种就够了。不要太依赖某个平台,如果 aliases 和 cssclass 在其他 markdown 软件没什么用,那就不要用它。
实测导入 joplin 时,只有 tags 可以正常识别
日期时间到底用什么格式?
时间格式可以自由组合 [Format - momentjs.com](https://momentjscom.readthedocs.io/en/latest/moment/04-displaying/01-format/)
20250304 、2025/03/04 还是 2025-03-04?想怎么弄其实都可以。
年月日和时分秒得有,有些甚至还加上时区或者用UTC ( UTC:世界标准时间,在标准时间上加上8小时,就是东八区/北京时间。)
如果为了方便看:YYYY-MM-DD HH:mm:ss
如果为了方便日后检索:YYYYMMDD HH:mm:ss
其他参考链接
[How to Use YAML Front Matter in Obsidian - WunderTech](https://www.wundertech.net/yaml-front-matter-in-obsidian/)
[Obsidian 的 YAML Front matter 介绍 - 知乎](https://zhuanlan.zhihu.com/p/370113792)
[Obsidian 的 YAML Front matter 介绍 by Bon - Obsidian中文教程 - Obsidian Publish](https://publish.obsidian.md/chinesehelp/01+2021%E6%96%B0%E6%95%99%E7%A8%8B/Obsidian+%E7%9A%84+YAML+Front+matter+%E4%BB%8B%E7%BB%8D+by+Bon)