Hugoで記事が表示されないときに確認すること

toc目次

はじめに

Hugoで記事を書いてもサーバーで表示できないことがあったので、その際にチェックしたことと解決方法のメモです。

記事が表示されない原因

記事がドラフトになっている

hugo new contentコマンドで記事を作成すると、テンプレート(/archetypes/default.md)を使用して記事が作成されます。

---
date: '{{ .Date }}'
draft: true
title: '{{ replace .File.ContentBaseName `-` ` ` | title }}'
---

デフォルトでdraft: trueとなっているため、draftの値を変更せずにhugo serverコマンドを実行しても記事が表示されません。

記事を表示するには、draft: falseに変更します。

なお、コマンドをhugo server -Dとするとドラフトの記事も表示できます。

日時が未来になっている

hugo serverコマンドでは未来日付の記事を表示できません。

また、日付が未来ではないのに記事が表示されないケースがあったのですが、これは設定ファイル(hugo.toml)にタイムゾーンを設定していないことが原因でした。

タイムゾーンを設定していないとタイムゾーンがUTCと判定されるためJST(日本標準時)では「設定した日時+9時間」経過しないと記事が表示されません。

記事を表示させるにはdate: 2023-12-31T0:00:00+09:00と日時設定でタイムゾーンまで設定するか、Hugoの設定ファイル(hugo.toml)にタイムゾーンを設定すればOKです。

# タイムゾーンの設定
timeZone = "Asia/Tokyo"

なお、コマンドをhugo server -Fとすると未来日付の記事も表示できます。