last_updated を updated に変更した話
目次
件名のとおりです。 以前の日記 で <lastmod>
の値が変なことになって困っていたのをどうにかしたという内容で記事を書いたのですが、実は公式が提供している機能や設定だけで解決できることがわかったのでそっちに乗り換えました。というかんじの内容を今日は書いてみます。
前回のあらすじ
以前に書いた日記です。
XMLサイトマップの更新日時を直した | Jpsern.com
これは <lastmod>
にファイル生成日時が使われていて困っていたという話です。このときは last_updated
という項目を front-matter に追加し、ここに自分で日付を入れた場合のみ <lastmod>
を記載する、という方法で解決しました。
公式の解決方法
page.updated
ページの最終更新日
updated_option
Front Matterで提供されていない場合に使用するupdatedの値
デフォルト: mtime
つまり、last_updated
を自作する必要はなく、公式が用意している updated
を使えばよかっただけのようです。
さらに、updated_option
を config に設定し、mtime
ではなく date
を指定しておけば、updated
が設定されていない場合は勝手に date
の値を使ってくれるようになるようです。
なぜオレはあんなムダな時間を・・・
というわけで修正します
まあ、もっと簡単に解決できることがわかったのはいいことなので、気を取り直してさっそく対応していきましょう。
_config.yml
の修正
ちなみにプロジェクト直下のほうです。テーマ側のconfigではないです。
+ # updated がフロントマターにないときの挙動。dateは公開日を使う設定。 |
sitemap_template.xml
の修正
if文で分岐する必要もなくなったのでif文は消しつつ、last_updated を updated に変えます。なお、そのまま出力すると書式が ISO 8601 (yyyy-MM-ddTHH:mm:ss
) で出力されてしまうので、format
を噛ませています。
{% for post in posts %} |
記事側の修正
last_updated
を使っている記事すべてフロントマターを修正します。ちょっと面倒ですが今回だけやれば楽になるのでここは last_updated
を検索してヒットしたファイルを地道に直していきます。
updated
は date
と同じ書式(ISO 8601)でOKです。これで last_updated
のクオート忘れに悩まされることもなくなるのでよかったです。
- last_updated: '2024-09-30' |
scaffolds の修正
次回以降の日記作成時にそなえて、scaffolds/post.md
も直しておきます。
--- |
以上で修正は終了です。
まとめ
いやー、完全に車輪の再発明してしまってましたw
とはいえ自分でどうにかした経験があるからこそ今回公式が提供していた機能のありがたみもわかりますし、それはそれで勉強にはなったのでよしとします。
ではまた