実現したいこと

複数の記事を並行して書いていると、ブラウザで開いているページと、いま編集しているファイルが別の記事になっていることがある。hugo serverはファイルの変更を検知してライブリロードするが、既定では表示中のページをそのまま再読み込みするだけで、編集した記事のページには移動しない。

-N(--navigateToChanged)を付けると、保存したファイルに対応するページへブラウザが自動的に移動する。

使い方

hugo server-Nを付ける。

$ hugo server -N

動作確認

記事A・記事Bの2本を用意し、ブラウザで記事Aを開いた状態のまま記事Bのfrontmatter以外を編集して保存する。

-Nを付けて起動したサーバーでは、保存した瞬間にブラウザが記事Bのページへ自動的に遷移した。

変更前のタブ: http://localhost:1313/hugo/post-a/ (記事Aを表示中)
記事Bを保存
変更後のタブ: http://localhost:1313/hugo/post-b/ (自動的に記事Bへ遷移)

-Nを付けずに同じ手順を試すと、記事Bを保存してもブラウザは記事Aのページに留まったままだった。ライブリロード自体は動作しているため、記事Aを再度編集すればその場で反映されるが、記事Bのページへは移動しない。

複数記事を並行して書いているときに使う

-Nは、いま画面に表示しているページとは別のファイルを編集している場面で効果を発揮する。1つの記事だけを見ながら書いている場合は、表示中のページがそのまま更新されるため-Nの有無で見た目の違いは出ない。

参考: hugo server | Hugo