実現したいこと

draft: trueの下書き記事や、publishDateを未来にして予約投稿した記事は、素のhugoコマンドではビルドに含まれない。執筆中にプレビューで見た目を確認したい場合でも、そのままでは記事が出力されない。

-D(--buildDrafts)や-F(--buildFuture)を付けると、これらの記事もビルドに含められる。

使い方

draft: trueの記事を用意し、-Dを付けずにビルドすると出力されない。

$ hugo -d /tmp/hugo-check
$ ls /tmp/hugo-check/hugo/draft-post
ls: /tmp/hugo-check/hugo/draft-post: No such file or directory

-Dを付けてビルドすると出力される。

$ hugo -D -d /tmp/hugo-check
$ ls /tmp/hugo-check/hugo/draft-post
index.html
index.xml

publishDateを未来の日時にした記事も同様に、-Fを付けない限りビルドに含まれない。

$ hugo -d /tmp/hugo-check
$ ls /tmp/hugo-check/hugo/future-post
ls: /tmp/hugo-check/hugo/future-post: No such file or directory
$ hugo -F -d /tmp/hugo-check
$ ls /tmp/hugo-check/hugo/future-post
index.html
index.xml

hugo serverにも同じ-D/-Fを付けられるため、執筆中の下書きや予約投稿をローカルサーバーでプレビューする用途にも使える。

$ hugo server -D -F

–cleanDestinationDirと組み合わせて確認用の出力を掃除する

-Dを付けて出力した確認用ビルドをそのままにしておくと、下書きのHTMLが出力先に残り続ける。-Dを外して--cleanDestinationDirを付けて同じ出力先へビルドし直すと、下書き記事の出力が削除される。

$ hugo -D -d /tmp/hugo-check
$ ls /tmp/hugo-check/hugo/draft-post
index.html
index.xml
$ hugo -d /tmp/hugo-check --cleanDestinationDir
$ ls /tmp/hugo-check/hugo/draft-post
ls: /tmp/hugo-check/hugo/draft-post: No such file or directory

公開前の確認用ビルドと、公開版相当のビルドを同じ出力先で行き来する場合、--cleanDestinationDirを付けておくと下書きの取り残しを防げる。

参考: 【Hugo】--cleanDestinationDirで出力先ディレクトリの余分なファイルを削除する

参考: hugo | Hugo