關於 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)