Hugo のビルドコマンド

Hugo で Web サイトをビルドするには、hugo と唱えるだけです。

1$ hugo

コマンドを実行すると、public 以下に HTML を生成します。

通常はこれで問題ありません。

運用していると、ページを削除することもある

サイト全体のクオリティをアップするためには適宜コンテンツ見直すことが大切ですね。

当サイトでも、

  • 情報が古くなってしまった記事
  • やっつけで中身の薄い記事
  • 今見ると恥ずかしい記事

など、 低品質とに繋がりそうな記事 は記事を削除するなど対処します。

記事を削除しても、ページが残る場合

ところが、 オプションなしの hugo コマンドは「削除した記事」がそのまま public に残り続ける 事がわかりました。

図 1 : Hugo 削除したいページ
図 1 : Hugo 削除したいページ

「post_to_delete」の元となる マークダウンファイルを削除し、hugo コマンドを実行してみましょう。

1$ cd hugo_site
2$ rm content/post/post_to_delete.md
3$ hugo

実行、、、しました。
しかし、これでは 図 2 のようにページが残り続けるのですね。

Hugo 削除したいページが、通常ビルドでは残ってしまう
Hugo 削除したいページが、通常ビルドでは残ってしまう

しばらく「 public 以下をいったん全削除してからビルド」を行っていましたが、更新のない記事まで modified されてしまってイケていません。

削除した記事を public 以下に反映させるオプション

怠慢せずに調べてみると、オプションが用意されていました。

--cleanDestinationDir です。

1--cleanDestinationDir    remove files from destination not found in static directories

とあるように、元ファイルが残っていないページをきれいにしてくれるオプションです。


1$ hugo --cleanDestinationDir

オプションを付けてビルドすると、図 3 のように削除したページが public から取り除かれました。

図 3 : Hugo オプションをつけると期待通りページが削除される
図 3 : Hugo オプションをつけると期待通りページが削除される

まとめ

オプションなしの hugo は public 以下にページを追加するだけです。

記事を削除した場合は --cleanDestinationDir をつけると、 pulic 以下から対象ページを取り除いてくれます。

この記事の著者 Webrow (うぇぶろう)
Web アプリ開発、 Web 顧問 エンジニア、WordPress サポートいたします。