lycheeでHugoのデッドリンクを検出する
やりたいこと lycheeというRust製のリンク検査ツールがある。 今回はHugoで作成したブログのデッドリンクをlycheeで検出するためのシェルスクリプトを作る。 環境 Hugo 0.146.6 PaperMod (commit 7cf752f8644fea1fc3dc7299352718d492c55182) lychee 0.18.1 lycheeのインストール 詳細は公式のGitHubを参照。 自分はbrewでインストールした。 brew install lychee シェルスクリプト まずは実際に作成したシェルスクリプトを見てみる。 lychee/check.sh #!/bin/bash rm -rf public/ hugo server -p 13131 & HUGO_PID=$! while ! nc -z localhost 13131; do sleep 0.5 done lychee public/ --base="http://localhost:13131" --exclude="amzn.to" --exclude="a.r10.to" kill $HUGO_PID 一行ずつ見ていこう。 1. rm -rf public/ public/ディレクトリを削除する。 Hugoはビルドした結果をpublic/に格納する。 もし記事を削除しても、public/にビルドファイルが残っている可能性がある。 そのような記事はリンク検査の対象にしたくないので、一旦public/を削除してから次のステップ2でもう一度ビルドする。 2. hugo server -p 13131 & ポート13131でHugoのサーバを起動する。このとき同時に再ビルドも行われる。 &をつけることで処理をバックグラウンドで実行することができる。 ...