たまに変なテンプレートを書いてしまっていて、HTMLがおかしくなったりする。今回は<a href="/statuses/"">
と、引用符が重なっていたりした。しかし、テンプレート・ファイルが小間切れである以上、編集時に行うことは難しいだろう。やはり定期的に生成されたHTMLファイルを検証することになる。まずは、バージョン番号を更新したタイミングで、一部を検証することにした。
全HTMLファイルを検証するとなると死にそうなので、無作為に抽出して検証するしかない。一方で頻繁に更新される可能性のあるHTMLファイルは毎回検証すべきだ。つまり雑記記事からは無作為に抽出し、トップページ他のページ群と合わせて検証すれば十分だろう。抽出のデータ元としてはSitemapsファイルが最適だと考えて、それをうまく使うことにした。
まずはローカルで検証することにする。JSONでエラーを返してもらえるNu HTML Checkerに対して、node-fetchパッケージとform-dataパッケージを使ってリクエストすると、機能と速度のバランスがよかった。Nuはmultipart/form-dataしか受け付けないので、form-dataパッケージが必要になる。
特に汎用化する必要もないので、専用のスクリプトとエラーだけ調べるライブラリーとして書いた。汎用化されたものはnpmレジストリーにいっぱい公開、公式のパッケージも含めて公開されているので、ちゃんとしたプロジェクトではそっちを使う方がいい。このウェブサイトでは、どういうタイミングでやると効率的かつ修正しやすいかを探りたいので、小さく作って使ってみている。
検証のタイミングを探るため、雑記記事をプレビューして確認する時や公開する時にも検証するようにした。公開時よりもプレビュー時の方が、作業の一環として行え、直しやすいことがわかる。また、プレビューしないことはまずないので、公開時は不要かもしれない。