Another HTML-lint : Download

# Another HTML-lint

目次
はじめに　　　　　　 　ゲートウェイサーヴィス
いくつかの覚え書き　 　　　　簡易ゲートウェイ
htmllint.cgiの使い方 　　　　　　　結果の解説
htmllintの使い方　　 　　　　　　　　タグ一覧
規則ファイルの生成　 　　　　　　　　　色見本
ダウンロード
メーリングリスト
参考までに　　　　　 　　作者にビールをおごる
よくある質問と答　　 　　　　プライマリサイト

## ダウンロード

ソース等はここからダウンロードできますが、本ゲートウェイサーヴィスも含めて、これらの実行等に伴ういかなる損害に対しても作者は責任を負いません。

パッケージによって、Perlスクリプトの文字コード系が異なります。*.zip が EUC/LF、*.lzh が SJIS/CRLF です。アクセス権限情報は含まれていません(作業環境がMacとWindowsなもんで)。*.sit.bin は Classic MacOS用で、Perlスクリプトの文字コードを SJIS/CR にして、TYPE/CREATOR を付加したりしたものです。HTMLはすべてJISコードのままです。
なお、フルパッケージはVectorからもダウンロードできますが、必ずしもプライマリサイトと同期しているわけではありません(というか、Vectorのは相当古い可能性があります)。

htmllint.zip
(Vector)
htmllint.lzh
(Vector)
htmllint.sit.bin
(Vector)
以下のすべてが含まれるフルパッケージです。
htmllint.core.zip
htmllint.core.lzh
htmllint.core.sit.bin
Perlスクリプト(htmllint*、*.cgi、*.pm、*.pl)などが含まれます。
htmllint.html.zip
htmllint.html.lzh
htmllint.html.sit.bin
HTMLファイル(*.html、*.css、*.gif)などが含まれます。
htmllint.rul.zip
htmllint.rul.lzh
htmllint.rul.sit.bin
規則ファイル(*.rul)が含まれます。動作に必要です。
htmllint.dtd.zip
htmllint.dtd.lzh
htmllint.dtd.sit.bin
DTD(*.dtd、*.ent)などが含まれます。動作には必要ありません。オリジナルに手を加えてあるものもありますし、XHTMLは含まれていません。

Perl5.004以上が必要です。JPerlでは動作しません。ローカルマシンへのインストールについて参考となるサイトを紹介してあります。
CPAN からは、各プラットフォームのPerl処理系を含むすべてのPerl関係のリソースをダウンロードできます。

CPAN (Comprehensive Perl Archives Network)
ActivePerl (Perl for Win32)
MacPerl

標準でないPerlライブラリ等は、必要なら例えば以下からダウンロードしてください。MacPerlで使う場合は改行コードをCRに変換する必要があるかも知れません。CRに変換するMacPerl用のドロップレットを作ってみました。

Jcode.pm
必要です。必ず入手してください。
XS化される前の古い版から最近のXS化された版への更新で、NoXS版を使用する場合、Jcodeフォルダ下に不要なUnicode.pmが残る場合があります。そのときは削除してください。NoXS版のときにUnicode.pmがあるとうまく動作しません。
jcode.pl
現在 Another HTML-lint では、jcode.pl は使用していません。代わりにJcode.pmを使用しています。しかし、都合でJcode.pmがインストールされていない場合でも、jcode.plがあれば動作します。ただし、そのときはUTF-8は扱えません。
CGI.pm
CGIとして動作させるときに必要です。
標準ライブラリですが、ヴァージョンが古い場合があります。2.5xでない場合は最新版をダウンロードしてインストールしてください。古いCGI.pmは、sub parse_params 内で

- my(@pairs) = split('&',$tosplit);
- となっていますが、新しいもの(2.46あたりから)だと
- my(@pairs) = split(/[&;]/,$tosplit);
- となっています。
cgi-lib.pl
現在 Another HTML-lint では、cgi-lib.pl は使用していません。代わりにCGI.pmを使用しています。
一部のユーザエージェントは、フォームの送出に際して、Content-Typeに
- application/x-www-form-urlencoded; charset=iso-2022-jp
- のようにCHARSETを付けるものがあるようです。cgi-lib.plは、これに対応していません。cgi-lib.pl 2.18ならば、82行目の判定を
- $type =~ m#^application/x-www-form-urlencoded(;|$)#

のように修正すれば一応動作させることができます。
LWP (libwww-perl)
CGIとして動作させるときに必要です。
Perlのパッケージに標準で含まれていることもありますが、Perl5.8には含まれていません。URLからHTMLを取得するためには、httpreq.pl を使用することもできますが、これは、Perl for Win32 でLWPが使えなかった頃に、わたしがお手軽に書いた習作スクリプトで、secure server では動作しないことがわかっています。LWPを使うことをお勧めします。インストールしておくと何かと便利です。持っていて損はありません。
Email::Valid
現在 Another HTML-lint では、Email::Valid は使用していません。
URL.pl, url_get
現在 Another HTML-lint では、URL.pl、url_get は使用していません。
wget
現在 Another HTML-lint では、wget は使用していません。
nkf / nkf Win32
現在 Another HTML-lint では、nkf は使用していません。

htmllint.zip/htmllint.lzh/htmllint.sit.bin では、全ファイルがフラットな構造に展開されます。このままの状態でも利用できますが、ファイルの種類別にディレクトリを分けることもできます。ファイルは次のように分類できます。

CGIスクリプト -- *.cgi、*.pm、*.pl、htmllint、htmllint.env などが含まれます。
HTMLファイル -- *.html と *.css などが含まれます。
規則ファイル -- *.rul が含まれます。
その他のファイル -- *.dtd や *.ent などの直接は利用されないファイルが含まれます。

htmllint の多くの動作環境は、htmllint.env に記述されています。htmllint.env はパッケージには含まれていないので、最初はサンプルの htmllintenv を htmllint.env に改名してください。そして htmllint.env 中の設定項目に目を通し、ディレクトリの指定など適宜書き換えてください。他のCGIの動作環境もこのファイルですべて調整します。
htmllint.env は他のCGIスクリプトと同じ場所に置いてください。CGIのアクセス権は、htmllint、htmllint.cgi、tagslist.cgi を 755 などにしておけば大丈夫です。htmllint.env 自身は、CGIからは読めるが外部から直接参照できないようにした方が安全です。例えば、Apacheでの .htaccess に AddType application/x-httpd-cgi .env を追加し、アクセス権を 744 にしておく、などです。ログファイルを作る場合は、それを置くディレクトリにも適切なアクセス権を与えます。
HTML中にも何個所か修正しなければならない場所があります。

*.html の htmllint.cgi と tagslist.cgi のパス。

- s#\./(htmllint\.cgi|tagslist\.cgi)#anywhere/$1#g
- use-htmllintcgi.html のサンプル中のURL 3個所。
- s#http://openlab\.ring\.gr\.jp/k16/htmllint/(?!i)#http://anydomain/anywhere/#g
- 一部の *.html のイメージファイル top.gif のパス。
- s#\./(top\.gif)#anywhere/$1#g

Lynx を利用する場合は、lynx.cfg でCHARACTER_SETを Japanese(EUC) に設定してください。このとき、htmllint.cgiはEUC版である必要があります。Lynx は 2.7.1 でしか動作確認していないので、他のヴァージョンではオプション等の調整が必要かも知れません。Lynx の起動時オプションは htmllint.env の中に記述されています。

ダウンロードした htmllint.zip/htmllint.lzh/htmllint.sit.bin には、以下のようなファイルが含まれています。

htmllint
コマンドラインから起動し、htmllint.pmを呼び出して構文チェックするためのPerlスクリプトです。MacPerl版ではドロップレットですが、MPWで利用するときはプレーンテキストにする必要があります。
htmllint.pm
チェッカ本体のPerlスクリプトパッケージモジュールです。
common.rul
共通規則ファイルです。他の規則ファイルの不備を補うもので、htmllint.pm、htmllint.cgi、tagslist.cgiが読み込みます。
charsets.rul
IANAのCHARACTER SETSを元にして作った連想配列で、htmllint.pmが読み込みます。
colortable.rul
色名と色コードの対応表です。htmllint.pmが読み込みます。
*.rul
各種HTMLに対応した規則ファイルです。htmllint、tagslist.cgiが読み込みます。
*.dtd/ent
それぞれの規則ファイルの元になったDTDです。RFCなどからの抜粋ですが、MozillaやMSIEのものはリファレンスからの捏造品です。htmllintは使用しません。
tagslist.cgi、tagslist.html
規則ファイルからタグ一覧HTMLを生成するPerlスクリプトと、それへの目次の含まれるHTMLです。
parsedtd.pl
DTDから、htmllintが読み込む規則ファイルの原形を生成するPerlスクリプトです。htmllintは使用しません。
htmllint.cgi
htmllint.htmlとhtmllint.pmの間を仲介するためのゲートウェイ用のPerlスクリプトです。
htmllintenv
htmllint.pm、htmllint.cgi、tagslist.cgiが使用する環境ファイルのサンプルです。このファイルからhtmllint.envを作ってください。htmllint.envをhtmllint.pm、htmllint.cgi、tagslist.cgiが読み込みます。
htmllintrc
htmllintのための設定ファイルのサンプルです。使用しません。
htmllint.history.txt
htmllint.cgiとhtmllint.pmの更新履歴です。
htmllint.html
htmllint.cgiをCGIとして呼び出すHTMLです。
htmllintl.html
htmllint.htmlの簡易版です。
htmllinte.html
MSIE4以上用のDynamicHTMLを利用したものです。
explain.html、explain-wai.html、explain-score.html、explain-omake.html
チェックの結果の解説などが述べられたHTMLです。
colors.html、colorsbk.html
名前付き色見本です。
index.html、introduction.html、notice.html、use-htmllintcgi.html、use-htmllint.html、download.html、rulefile.html、reference.html、faq.html
この能書きの書かれたHTMLファイル群です。
htmllint.css
スタイルシートがちょっとだけ定義されているファイルです。background-image などをお好みに調整してください。
*.gif
「よくできました」などのイメージファイルです。
httpreq.pl
簡単な HTTP アクセスライブラリです。htmllint.env の設定によっては htmllint.cgi が使用します。htmllint.cgi と同じディレクトリに置くか、Perlのライブラリディレクトリに入れてください。
RFC2396.pm
RFCに記述されているURIの構文則を正規表現で表わしたPerlスクリプトパッケージモジュールです。htmllint.pm が使用します。htmllint.pm と同じディレクトリに置くか、Perlのライブラリディレクトリに入れてください。

Another HTML-lint をファイアウォール内へインストールする場合は、変数の設定が必要かも知れません。htmllint.env で、$HTTP_PROXY と @HTTP_NOPROXY の設定を適切に行なってください。

UNIXの場合、環境変数HOMEで示されるディレクトリに、.htmllintrc というファイルがあると、チェックの初期状態として読み込みます。htmllintrc というサンプルを好みに編集し、ファイル名を変更して使ってください。

Another HTML-lint を自分のサーバやローカル環境で動作させるための手引きが、以下のようなサイトにあります (順不同、敬称略、無断紹介)。
なお、これらのリンクは生きていない可能性がありますが、積極的には保守しません。

Another HTML-lint を win32 上で使う (橋本純一)
HTML文法チェック等(HTML-lintをWindows(2000)で動かす) (sesoko'p)
窓達約百に於けるAnother HTML-lintの導入 (桑島雄一郎)
Another HTML-lintを使おう (えいさあ)
Another HTML-lintをWindows 98/2000で動かす (高橋誠)
Another HTML-lint on Windows95/98/NT (有限会社プレジャースカイ)
ローカルでAnother HTML-lint gatewayを使うための各種設定 (SATOSHI Fujita)
Another HTML-lint setup (Ｚ)
ＱＸでＨＴＭＬ文法チェック！ (双未綾)
Another HTML-lintをWindowsコマンドラインで使うの巻 (川又文男)
Another HTML-lintをローカルで使用するために (荻内康雄)
「Another HTML-lint gateway」をローカルで動かす (kazuishi)
HTMLLINTを導入しよう (たかくん)
Another HTML-lintを気軽に使う (平山宗平)
Software Installation on BOW (フジタユウイチ)
htmllintのインストールと設定 (Sugaken)
HTMLの文法チェック (中田拓馬)
Another HTML-lint の導入及び UserAgent との連携 (緋)
WZ EDITOR4.0にHTML文法チェッカーを組み込む (ミュール)
Another HTML-lint on Local Mac OS X (ecco)
AHL-Runner (nakamuxu)
LintFront (HANEDA Akihito)
Another HTML-lint 導入ガイド (水無月ばけら)
Vine Linux 2.6 に移植した Another HTML-lint (ナカタ)
Mac OS XでAnother HTML-lintを使おう (森俊之)

Another HTML-lint インストーラ (UNIX用)
Another HTML-lint on MacOS

このサイトの運営は作者が行なっているわけではありませんのでご注意ください。
作者が管理しているのはプライマリサイトだけです。
このサイトの管理人はその連絡先を明記してください。明記されていないサイトは正しくない利用形態です。

Updated: Jul 07, 2005
Created: Jun 19, 1997
© by k16@chiba.email.ne.jp