HugoでRecentとかを別ページにして毎回ページが更新されるのを防ぐ

このブログはgithub ActionsでHugoを実行してgithub pagesで出来てる。 Hugoは静的なサイトを作るソフトだから、右のサイドバーとかの内容も静的なものだから、記事を作るたびに更新される。 そうなるとサイドバーを使ってるページ全てのファイルが更新されることになる。単にファイルをホストしてるだけなら気にならなかったと思うが、githubでやってるせいで毎回大量のファイルがコミットされるのが気になった。 だからHugoのContent Typesを使って一部のファイルだけ更新してそれ以外を読み込むようにした。

Hugoではmdファイルのフロントマターにtypeを指定すると、layoutsフォルダ内のそのtype名のテンプレートを使うようになる。 Hugo’s Lookup Order

---
date: "2010-01-1T00:00:00+09:00"
type: "recentframe"
url: "recent.html"
---

これを利用して、サイドバーの無い、サイドバーの中身が張られたページを作る。 作り方は使用してるテーマのサイドバーの部分から引っ張ってくればいい

そうしたらそのページをifrmaeタグで今まで読み込んでた部分と置き換えればとりあえずやりたいことは達成できる。

見た目は気が向いたら凝る。

あ、これだめだ。iframeの中のリンクはiframeのウィンドウが変わるだけなのか。まあ、やりたいことはこんな感じ

追記 target="_parent"をつければよかった。