Hugo のブログ記事に GitHub の編集履歴を埋め込む
執筆日時:
GitHub は API 経由で特定ファイルのコミットログを取得できる。GET リクエストを投げるだけなので簡単そうだ。
これを利用して、こんな感じの編集履歴画面を Hugo のブログ記事に埋め込みたいと思った。
{{- $json := getJSON $endpoint -}}
<ul class="list-group list-group-flush">
{{ range $json }}
<li class="list-group-item">
<a href="{{ .html_url | safeURL }}">
<time class="text-mute" datetime="{{ .commit.author.date }}">
{{ (time .commit.author.date).Local.Format "2006年1月2日15時04分" }}
</time>
</a></li>
{{ end }}
</ul>
なかなかうまくいった。さっそくビルド&プッシュして本番環境に反映させよう……としたところ。
すまんwww pic.twitter.com/HxmY4bczAQ
— BLゲームの破滅フラグしかない だるやなぎ に転生してしまった… (@daruyanagi) May 14, 2020
リクエストが多すぎるというエラーをもらってしまった。ウチのブログ記事は 2,000 ちょいあるが、それが一斉に API を叩いたものだから……そりゃあね。
というわけで、いいアイデアだと思ったのだが、残念ながお蔵入りとなってしまった。間にサーバーを挟んで、キャッシュ&API を叩く間隔を調整してもいいが、さすがにちょっと面倒くさいかな。
参考