まちゅダイアリー

tDiaryの日記を静的サイトジェネレータで表示したい (2)

2022-04-09

前回まででtDiaryの日記をHTML形式でエクスポートできるようになった。 静的サイトジェネレータで取り回ししやすいように、日単位ではなくセクション単位でHTMLを出力している。

ここで悩ましいのが、旧サイトからのリダイレクト設定。 このサイトでも初期の日記は、1日に複数の記事を書いていた。 例えば2008年3月2日の日記はこんな感じ。

セクション単位でHTMLを分けたことにより、移行先のURLはそれぞれ別になる。

ここで問題になるのは、元のページは 20080302.html という1つであり、セクションアンカー (#p01, #p02,#p03) 単位ではリダイレクトできないこと。

しばらく悩んだあげく、セクションごとのページとは別に、日のページも用意することにした。 たしか、はてなダイアリーも同じ構成だったはず。

以前のページからリダイレクトするときに、いちど日のページを経由する手間はあるが、仕方ない。

hugoだと、以下のようにコンテンツとテンプレート (layouts) を作ることで、日のページを表示できる。

content/posts/20080302/_index.md

---
layout: "day"
aliases:
  - "/diary/20080302.html"
---

layouts/section/day.html

{{- define "content" -}}
<div class="page home" posts>
  <h1>{{ .Date.Format "2006-01-02" }}の日記</h1>

  {{- range .RegularPages -}} {{- .Render "summary" -}} {{ end }}
</div>
{{- end -}}

これでtDiaryの日記を静的サイトジェネレータで表示する目処がついたかな。