Another HTML-lintは公開されており、
上記の URL から使用すればいいので、大抵の人ははわざわざ導入する必要はありません。
なのにわざわざ導入しようとするのは、
- The Internet にコンテンツを公開する前にチェックしたい
- イントラネット(家庭内 LAN or 社内 LAN) でサービスしたい
という希望があるためです。
多分(笑)、便利なので暇だったらとりあえず入れてみましょう!
ちなみに、社内に正しい HTML を啓蒙するための第一歩でもあるかもしれません。
http://openlab.ring.gr.jp/k16/htmllint/download.html
上記 URL で Another HTML-lint に必要なものを確認すると、
- Jcode.pm
- CGI.pm (ver 2.5x 以上)
- libwww-perl
と記述されていますのでこれらのライブラリを準備するのが最初です。
まずは Jcode.pm から準備しましょう。
以下の URL からソースを取得してください。
http://openlab.ring.gr.jp/Jcode/index-j.html
Jcode-0.82.tar.gz をダウンロードしたとすると
以下のように実行することでライブラリのインストールが行えます。
$ tar zxvf Jcode-0.82.tar.gz
$ cd Jcode-0.82
$ perl Makefile.PL
$ make
$ make test
$ make install
次は CGI.pm です。
Cygwin 1.3.12 では ver 2.752 が標準で組み込まれていますので、
これ以降のバージョンの Cygwin については
インストールする必要はありません。
それでも、最新の CGI.pm をインストールしたいという方は、
以下のとおりに実施してください。
-----
以下の URL からソースを取得してください。
CGI.pm(ver2.91)
CGI.pm.tar.gz (ver 2.91) をダウンロードしたとすると
以下のように実行することでライブラリのインストールが行えます。
すでに標準で CGI.pm が入っており、
そちらのほうがライブラリの検索順が早いので、
最後に標準でインストールされている CGI.pm のリネームを実施します。
$ tar zxvf CGI.pm.tar.gz
$ cd CGI.pm-2.91
$ perl Makefile.PL
$ make
$ make test
$ make install
$ cd /usr/lib/perl5/5.6.1/cygwin-multi
$ mv CGI `date "+%Y%m%d"`_CGI
$ mv CGI.pm `date "+%Y%m%d"`_CGI.pm
最後に libwww-perl を準備します。
libwww-perl の中にも依存関係があるので、
それを解決しながらのインストールとなります。
依存関係は以下のとおり。
リンクを張っておきましたので、上記のリンクからソースを取得して、
以下のように実行することで、ライブラリのインストールが出来ます。
上記の URL で新しいバージョンのソースを手に入れた場合でも、
基本的には手順はいっしょのはずです。
URI
$ tar zxvf URI-1.23.tar.gz
$ cd URI-1.23
$ perl Makefile.PL
$ make
$ make test
$ make install
MIME-Base64
$ tar zxvf MIME-Base64-2.16.tar.gz
$ cd MIME-Base64-2.16
$ perl Makefile.PL
$ make
$ make test
$ make install
HTML-Tagset
$ tar zxvf HTML-Tagset-3.03.tar.gz
$ cd HTML-Tagset-3.03
$ perl Makefile.PL
$ make
$ make test
$ make install
HTML-Parser
$ tar zxvf HTML-Parser-3.27.tar.gz
$ cd HTML-Parser-3.27
$ perl Makefile.PL
$ make
$ make test
$ make install
libnet
$ tar zxvf libnet-1.13.tar.gz
$ cd libnet-1.13
$ perl Makefile.PL → コンフィグは上書きしない
$ make
$ make test
$ make install
Digest-MD5
$ tar zxvf Digest-MD5-2.23.tar.gz
$ cd Digest-MD5-2.23
$ perl Makefile.PL
$ make
$ make test
$ make install
libwww-perl
$ tar zxvf libwww-perl-5.69.tar.gz
$ cd libwww-perl-5.69
$ perl Makefile.PL → 以下のように入力する
Do you want to install the GET alias? [y] y
Do you want to install the HEAD alias? [y] n
Do you want to install the POST alias? [y] n
$ make
$ make test
$ make install
上記のように入力しないとエラーで make install できないです・・・。
ちなみに、依存関係の調査は URL やソースの中の記述を調べることで行えます。
以下の本家のサイトが一番わかりやすいと思います(情報は古いですけど)
http://www.linpro.no/lwp/
やっと、目的のもののインストールです。
以下の URL からソースを取得しましょう。
Cygwin 上で文字コードが違っていても問題ありませんが、
改行コードが違っていると問題が起こる可能性があるので、
取得するのは、
htmllint.zip (EUC/LF) です。
http://openlab.ring.gr.jp/k16/htmllint/download.html
基本的に展開して、設定を行えば動くのでドコにおいてもいいのですが、
一般的に考えて /usr/local 配下に置くのが普通でしょう。
そういうわけで、以下のようにインストールすることをおすすめします。
$ mkdir /usr/local/htmllint/
htmllint.zip を Windows 上で展開して、
/usr/local/htmllint/ にあたる場所に配置してください。
$ cd /usr/local/htmllint/
$ mkdir cache
$ mkdir logs
$ mkdir images
$ mv *.gif images
$ chown -R 544:544 ./
$ chmod 644 `find ./ -type f`
$ chmod 755 `find ./ -type d`
$ chmod a+x *.pl *.cgi htmllint
$ mv htmllintenv htmllint.env
そして、忘れないうちに perl のファイルパスを修正しましょう。
$ cd /usr/local/htmllint/
$ grep /usr/local/bin/perl `find ./ -type f`
で表示されるファイル群に対して、
/usr/local/bin/perl → /usr/bin/perl と書き換えましょう。
残りは設定だけです。
htmllint.env というファイル(EUC)を設定すれば終わりです。
それほど難しくないので、この設定をするのに特にヘルプはありません。
うまくいかないときは
私の設定 (htmllint.env)も参考にしてみてください。
以上で、htmllint の環境が整いました。
後は Apache を設定して、Web から htmllint を使えるようにすれば完了です。
/htmllint/ からアクセスするようにするには、
以下のとおりに設定を加えれば OK です。
<IfModule mod_mime.c>
Addtype application/x-httpd-cgi .cgi
</IfModule>
Alias /htmllint/ /usr/local/htmllint/
<Directory "/usr/local/htmllint/">
<IfModule mod_mime.c>
# CGIの利用する拡張子を設定
AddHandler cgi-script .cgi
Addtype application/x-httpd-cgi .cgi
</IfModule>
Options ExecCGI None
AllowOverride None
Order Allow,Deny
Allow from all
</Directory>
mod_limitipconn を Apache に組み込んだ人は、
以下のコンフィグも入れたほうが良いでしょう。
<IfModule mod_limitipconn.c>
<Location /htmllint>
# 最大接続数制限なし
MaxConnPerIP 0
</Location>
</IfModule>
以上ですべて完了です。
お疲れ様でした。
http://127.0.0.1/htmllint/
などから Another HTML-lint が使えるようになっているはずです☆
活用して、より良い HTML を書くようにしましょう!!
より活用するには以下の URL がおすすめです。
htmllint の使い方
Internet Explorerとの連携
Another HTML-lint の導入及び UserAgent との連携