実現したいこと
publishDateを未来にして予約投稿した記事や、expiryDateを過ぎた記事は、実行時点の現在時刻を基準に表示・非表示が決まる。実際にその日時が来るまで待たなくても、特定の日時が来たときの見た目を確認したい。
--clockを付けると、Hugoが「現在時刻」として扱う日時を指定できる。
使い方
--clockに日時を指定して実行する。
$ hugo --clock 2099-06-01T00:00:00+09:00
動作確認: -Fを付けなくても未来日付の記事が表示される
publishDateを2099-01-01T00:00:00+09:00にした記事を用意し、--clockなしでビルドすると表示されない。
$ hugo -d /tmp/hugo-check
$ ls /tmp/hugo-check/hugo/future-post
ls: /tmp/hugo-check/hugo/future-post: No such file or directory
publishDateより後の日時を--clockに指定すると、-F(--buildFuture)を付けなくても表示される。
$ hugo --clock 2099-06-01T00:00:00+09:00 -d /tmp/hugo-check
$ ls /tmp/hugo-check/hugo/future-post
index.html
index.xml
--clockで指定した日時が「現在時刻」として扱われるため、publishDateが過去になり通常の記事と同じ扱いになる。
expiryDateを過ぎる前の状態も再現できる
expiryDateを過ぎた記事も同様に、--clockで期限前の日時を指定すると-E(--buildExpired)を付けずに表示できる。expiryDateを2020-06-01T00:00:00+09:00にした記事で試す。
$ hugo --clock 2020-03-01T00:00:00+09:00 -d /tmp/hugo-check
$ ls /tmp/hugo-check/hugo/expired-post
index.html
index.xml
-F/-Eが単に対象記事を無条件で含めるのに対し、--clockは「その日時が来たら」という状態そのものを再現する。予約投稿した記事が複数あり、ある時点でどれが公開済みになっているかを確認したい場合は--clockのほうが実態に近い。
参考: 【Hugo】-D/-Fで下書き・未来日付の記事を安全にプレビューする
参考: hugo | Hugo
\Hugoでオリジナリティのあるサイトを作ろう!/
