htmllint で (X)HTML の文法チェック

最近はめっきり少なくなったのかもしれませんけども、ぽち*ぷ〜ちXHTML1.1CSS2.1 の手書きで作られています。その手書きでとても重宝するのが (X)HTML文法チェッカーです。このページでは、Perl で書かれた Another HTML-lint を使って、日本語環境の文字コードが UTF-8debian squeeze のローカル環境で HTML/XHTML の文法チェックをする方法をメモしておきます。

必要なパッケージ

htmllint は Perlモジュール Encode のラッパー、Jcode に依存しています。あらかじめ libjcode-pm-perlパッケージをインストールしておきましょう。

$ sudo apt-get install libjcode-pm-perl

htmllint を入手する

Another HTML-lint : Download から、

を入手します。

core

適当な作業用ディレクトリで htmllint.core.zip を展開します。そのまま設置しては日本語環境が UTF-8 のターミナルエミュレータで実行した場合に表示が文字化けしてしまいますので、まずは文字化けを回避する為に、EUC-JP で書かれているファイルを根刮ぎ UTF-8 に変換します。

$ unzip htmllint.core.zip

展開して出来たファイルのうち、htmllint.pm htmllintenv htmllintrc の日本語文字コードを UTF-8 へ変換します。

$ perl -MEncode -i -ple '$_ = encode("utf8", decode("euc-jp", $_))' htmllint.pm htmllintenv htmllintrc

次に htmllint の 先頭行を #!/usr/bin/perl に書き換えてから、

push @INC => [&fileparse($0)]->[1];

push @INC => [&fileparse($0)]->[1], '/usr/local/lib/htmllint/';

htmllintenv の

$RULEDIR  = './';

$RULEDIR  = '/usr/local/lib/htmllint/';

に変更して、pmファイルや envファイル、規則ファイル群を置く予定のディレクトリにパスを通してあげます。

$ sudo mkdir -p /usr/local/lib/htmllint/
$ sudo cp *.pm /usr/local/lib/htmllint/
$ sudo cp htmllintenv /usr/local/lib/htmllint/htmllint.env
$ chmod 755 htmllint
$ sudo cp htmllint /usr/local/bin/
$ cp htmllintrc ~/.htmllintrc

適切なファイルを適切な場所に配置してとりあえず core は完了です。

rul

core とは別の場所の適当な作業用ディレクトリで htmllint.rul.zip を展開します。

$ unzip htmllint.rul.zip

こちらに展開して出来たファイルの中にも EUC-JP で書かれたファイルがあるので UTF-8 に変換します。

$ perl -MEncode -i -ple '$_ = encode("utf8", decode("euc-jp", $_))' common.rul

そしてファイル全部を /usr/local/lib/htmllint/ に置きます。

$ sudo cp * /usr/local/lib/htmllint/

使い方

一番簡単な使い方は、引き数に文法をチェックしたい (X)HTMLファイルだけを与える方法です。DOCTYPE宣言も無いような酷い (X)HTMLファイルで無い限り、大抵の場合はこれで間に合います。カレントディレクトリに置いてあるこのページの XHTMLファイルを文法チェックしてみると、

$ htmllint htmllint.html
htmllint.html を XHTML1.1 としてチェックします。
エラーは見つかりませんでした。\(^o^)/ このHTMLは 100点です。タグが 23種類 105組使われています。文字コードは UTF-8 のようです。

とチェックした結果が表示されます。

もっと詳しいオプションが知りたければ、Another HTML-lint : How to use htmllint を読んでみて下さい。

動作確認環境 : Perl 5.14.2 on Debian GNU/Linux 7.0 wheezy

戻る


Last updated : 2013/08/21
Author : 犬山ぽち丸 / INUYAMA Pochimaru / Pochimaru Inuyama
E-mail : pochi@hoshinoumi.net
Key ID : 4A1B5E85
Key fingerprint : 4605 4D40 6154 20C1 5592 3E54 5A37 FEE9 4A1B 5E85

正当な XHTML 1.1 です 正当な CSS です