This plugin will automatically update a modified property in your frontmatter/YAML when you edit a note.
This is different from other plugins in that it does not use the filesystem modified time. The frontmatter will only update when you actually work on a file inside Obsidian.
- Specify whatever YAML field name you prefer.
- Specify the date format, using MomentJS format.
- Exclude folders which you don't want to be automatically updated. This is important for anywhere you store your scripts or Templater templates.
This is specified in MomentJS format.
You should note that this doesn't necessarily need to be only a date. Moment format lets you put any free text inside square brackets []
. Some ways this might be useful in Obsidian is if you want to make your date into a link.
You would specific a link like this (which is surrounding Obsidian's normal wikilink brackets with extra square brackets):
[[[]YYYY-MM-DD[]]]
The modified time will update when Obsidian fires an editor-change
event. If you have another plugin like Linter or an external application updating your files, the modified date will update.
If you want to avoid updates from other processes modifying your notes, turn on the setting to "Use typing events instead of Obsidian events".
You can exclude a folder and all its subfolders in the Settings page.
If you want to exclude a single file, you can add a property called exclude_modified_update
and give it a value. Setting it to true
or using the Checkbox property type would be the most sensible option.
You can also append the date to a history array by adding a checkbox property called append_modified_update
. This is useful if you want to keep track of every time you edit a note.
🚩 Warning
Removing the
append_modified_update
property from the frontmatter will remove all saved modification dates.
The default frequency of entries is maximum one per day - so if you update a note on the same day it will modify the existing entry for that day, rather than appending a new one.
If you wish to change that frequency, you can edit your data.json
file and change the value for appendMaximumFrequency
. You can use any MomentJS unit of time, e.g. second
, minute
, hour
, month
etc.
It's possible when using this plugin that you will see a message like this, however it should be a rare occurance rather than the norm:
This is due to the way Obsidian itself handles the frontmatter update. If you are typing into a note at the same time that Obsidian updates the frontmatter field, it will show that message. There is no "external" process modifying the file, it is Obsidian itself.
My plugin works by waiting for 10 seconds after you stop typing before updating the frontmatter. By doing it this way it reduces the chance of that message popping up. However, if you start typing again the exact instant Obsidian is updating the frontmatter field, you'll see that message. It won't affect anything, it's just annoying. Hopefully they resolve this at some point.
Please note that you do not need to have the file open for the frontmatter to update. The updates go into a queue and the file will update even after you close it.