1. 背景

ドッドリンクのチェックにいくつかのツールを使用してきました。

最近見つけたデッドリンクのツールが良かったです。

2. ツール

ツールは以下のlycheeです。

lycheeverse/lychee: ⚡ Fast, async, stream-based link checker written in Rust. Finds broken URLs and mail addresses inside Markdown, HTML, reStructuredText, websites and more!

3. デッドリンクチェックに求めるもの

これを使ってみて、デッドリンクチェックに求めるものは以下だと改めて感じました。

  • Dockerで動くこと
  • リンクチェックのスピードが速いこと
  • チェック対象外のURLを指定できること
  • markdown,htmlに使えること
  • 結果をファイルに出力する

lycheeは私が求めるものにマッチしています。

注意するのは再帰的にリンクをチェックする機能はないことです。例えば、ウェブサイトのルートから各記事のリンクを辿って、リンクをチェックするような機能はないんです。再帰的にチェックしたい場合は別のツールを使うことになります。

4. 自分の使い方

dockerで以下のように動かします。

定義ファイルのlychee.tomlにチェック対象外のURLを正規表現で書いて、動かしています。

docker run --init -it --rm -w /input -v $(pwd):/input lycheeverse/lychee . -c lychee.toml

デッドリンクが大量に検出される場合は、-o file_name.txtのようにファイルに出力しています。