Hugo のビルドコマンド
Hugo で Web サイトをビルドするには、hugo
と唱えるだけです。
1$ hugo
コマンドを実行すると、public 以下に HTML を生成します。
通常はこれで問題ありません。
運用していると、ページを削除することもある
サイト全体のクオリティをアップするためには適宜コンテンツ見直すことが大切ですね。
当サイトでも、
- 情報が古くなってしまった記事
- やっつけで中身の薄い記事
- 今見ると恥ずかしい記事
など、 低品質とに繋がりそうな記事 は記事を削除するなど対処します。
記事を削除しても、ページが残る場合
ところが、 オプションなしの hugo
コマンドは「削除した記事」がそのまま public に残り続ける 事がわかりました。

「post_to_delete」の元となる マークダウンファイルを削除し、hugo
コマンドを実行してみましょう。
1$ cd hugo_site
2$ rm content/post/post_to_delete.md
3$ hugo
実行、、、しました。
しかし、これでは 図 2 のようにページが残り続けるのですね。

しばらく「 public 以下をいったん全削除してからビルド」を行っていましたが、更新のない記事まで modified されてしまってイケていません。
削除した記事を public 以下に反映させるオプション
怠慢せずに調べてみると、オプションが用意されていました。
--cleanDestinationDir
です。
1--cleanDestinationDir remove files from destination not found in static directories
とあるように、元ファイルが残っていないページをきれいにしてくれるオプションです。
1$ hugo --cleanDestinationDir
オプションを付けてビルドすると、図 3 のように削除したページが public から取り除かれました。

まとめ
オプションなしの hugo
は public 以下にページを追加するだけです。
記事を削除した場合は --cleanDestinationDir
をつけると、 pulic 以下から対象ページを取り除いてくれます。