デメリットも多少あるが、メリットの方が大きそうなので方針転換する。何よりも未来のために。
## 経緯
[[💿MIN-0015 Change logの代わりに作成日と最終更新日を書く]] にて、作成日と最終更新日は[[フロントマター]]ではなく、ファイルの末尾に[[HTML]]で記載するようにしていた。
だが、半年以上運用してみて、当時想定していたメリットよりもデメリットの方が上回っている気がした。別の言い方をすると、本来享受できるはずのメリット、また未来に享受できる可能性のあるメリットを捨てている気がした。
実際に、[[Minerva]]以外の[[Vault]]で半年ほど[[フロントマター]]方式を試してみたが、今のところ大きなデメリットは感じていないのも大きな理由。
## 提案内容
作成日と最終更新日は[[フロントマター]]に記録する。
| 項目 | key |
| ------ | ------- |
| 作成日 | created |
| 更新日 | updated |
keyについて、[[Obsidian Publish]]で意味を持つ名称が定義された場合、後ほどそちらへ一括置換する可能性はある。
## 承諾した場合の結果
### メリット
- 本文の邪魔にならない
- ページ最上部に追記したい場合は邪魔に思えるかもしれない
- しかし、実際に加筆するときはページ最下部が多い
- そのときに現行の方式では数行上へ移動する必要がある
- また、文末挿入自動化がやりにくい
- 解析可能になる可能性が上がる
- [[Obsidian Publish]]で情報が検索・表示できるようになるかも
- もし[[Dataview]]を使うなら有効活用できる
- [[🦉Another Quick Switcher]]の検索結果に対して最終更新日をあわせて確認できるようになる可能性がある
- [[🦉Another Quick Switcher]]の機能追加が必要
- 私自身がその機能を欲しいため近々実装する予定
- ==[[フロントマター]]であればキャッシュから取得できるはず、一方、[[HTML]]形式ではそれができない==
### デメリット
- [[Obsidian Publish]]では情報が見られなくなるかも
- [[Minerva]]では[[フロントマター]]を表示していないため
- 表示すると色々付属情報が出てしまって冗長に感じている
- 今後どちらの方向に倒すかは悩みどころ...
- 閲覧者よりも自身の使い勝手を優先したいので、メリットの方が上回る
- 見た目の格好良さを上げられない
- [[フロントマター]]の[[CSS]]をカスタマイズする以外に方法はない
- そもそも[[Minerva]]にそこまでの格好良さは求めていないため、これはあきらめる
- 既存コンテンツの書き換えが面倒
- 書き換えされていないと起こる致命的な問題はないため、気づきベースで直していけばよい
- [[📗カレントファイルのフロントマターを今日の日付で更新したい]] で[[Templater]]マクロ化もしてある
- 上記に加え、既存フォーマットを元に書き換えるような処理を実際には追加している
## その他
[[Templater]]マクロのバックアップ。
```
<%*
const PREFIX = ' <div class="minerva-updated-meta">'
let date = tp.file.content.includes("**💽Change log**")
? tp.file.content.match(/20[0-9]{2}\/[0-9]{2}\/[0-9]{2}/).at(-1)
: tp.date.now("YYYY/MM/DD")
const UPDATED = ` <div class="minerva-updated-meta">${date}</div>`
const editor = app.workspace.activeLeaf.view.editor
const index = await tp.user.replace_line_at_word_starts(PREFIX, UPDATED)
if (index !== undefined) {
new Notice("最終更新日を更新しました")
return
}
date = tp.file.creation_date("YYYY/MM/DD")
const noteBody = `
----
<div class="minerva-change-meta">
<div class="minerva-created-meta">${date}</div>
<div class="minerva-updated-meta">${date}</div>
</div>`
await tp.user.insert_new_line_at_last(noteBody)
%>
```