Another HTML-lint

htmllint.cgi の使い方

簡単な応用

ゲートウェイCGIスクリプト htmllint.cgi はどのHTMLからでも呼び出すことができます。
あなたのHTMLを、ボタンを押すだけで簡単に採点することができるようにしてみましょう。次のようなコードをあなたのHTMLに含めるだけです。METHODはPOSTでも構いません。

<FORM action="http://openlab.ring.gr.jp/k16/htmllint/htmllint.cgi" method="GET">
<INPUT type="HIDDEN" name="ViewSource" value="on">
<INPUT type="SUBMIT" value="Check This HTML">
</FORM>

次のボタンはこのHTMLをチェックします。

デフォルトでMozillaのHTMLでチェックしたい、というときは

<INPUT type="HIDDEN" name="HTMLVersion" value="Mozilla40">

などをFORMの中に含めてください。
特定のURLをチェックしたいときは、

<INPUT type="HIDDEN" name="URL" value="http://すきなアドレス">

とかいう行を含めてください。

何もFORMでボタンを作らなくったって、次のようなリンクを作るだけでもチェックできます。

<A href="http://openlab.ring.gr.jp/k16/htmllint/htmllint.cgi?ViewSource=on">Check This HTML</A>

要領はFORMと同じですので、わかりますよね。CGIのパラメータの指定は、URLの後ろに ? を書いて、変数の指定を ; で区切って並べりゃいいんです。 この区切りは、伝統的に & でもいいんですが、& を直接書くのは危ないので、&amp; としなけりゃなりません。 利用しているPerlのライブラリによっては ; が使えないことがあります。なるべく ; の使える環境を用意しましょう。

いちいち満点にしなけりゃ気が済まないんだけど、ときどきチェックしていないといつの間にか満点じゃなくなってるしなぁ、 たくさんHTMLを持っているとURLをそれぞれ入力するのがめんどくさい、という方は、チェック用のページを作っちまえばいいんです。 例えば次のような感じ。

<HTML>
<HEAD>
<TITLE>チェック用ページ</TITLE>
<BASE href="http://openlab.ring.gr.jp/k16/htmllint/">
</HEAD>
<BODY>
<UL>
<LI><A href="htmllint.cgi?ViewSource=on;URL=http://www.uso800.com/~hyena/">メインページ</A>
<LI><A href="htmllint.cgi?ViewSource=on;URL=http://www.uso800.com/~hyena/foods.html">食い物</A>
<LI><A href="htmllint.cgi?ViewSource=on;URL=http://www.uso800.com/~hyena/bikes.html">バイク</A>
<LI><A href="htmllint.cgi?ViewSource=on;URL=http://www.uso800.com/~hyena/links.html">リンク</A>
<LI>…
<LI><A href="htmllint.cgi?ViewSource=on">このページ</A>
</UL>
</BODY>
</HTML>

問い合わせ変数一覧

htmllint.cgi が受け取ることができるデータ(変数)は以下のとおりです。変数名の大文字小文字は区別されます。これらは、GETでもPOSTでもどちらで渡しても構いませんが、TEXTAREAを使うときなど、データ量が多いときはPOSTの方が安全です。
変数名には短縮形を指定できるものがあります。例えば、ViewSource=onV=on と書けます。また、=on は省略することができます。

<A href="htmllint.cgi?ViewSource=on;LynxView=on">

<A href="htmllint.cgi?V;L">

と書けます。

変数意味
MethodMチェックするHTMLをURLから取得するか、直接記述するかを指定します。省略時はURLから取得するとみなされます。
URLチェックするHTMLを変数URLで示されるURLから取得します。
DataチェックするHTMLを変数Dataの値そのものとします。
FileチェックするHTMLを変数Fileで示されるクライアント上のファイルから取得します。このとき、<FORM enctype="multipart/form-data"> でなければなりません。
URLMethod=URLのときのURLを指定します。このURLは、htmllint.cgi から見える場所になければなりません。つまり、外部からの要求に対して、ファイアウォール内のファイルなどは取得できません。
URLが指定されていないときは、(環境変数HTTP_REFERERで示される)直前の参照サイトとみなされます。これも空ならMethod=Dataとみなされます。
DataMethod=DataのときのHTMLを値として指定します。たいていは、<TEXTAREA> などに用います。
FileMethod=Fileのときのクライアント上のファイルを指定します。<INPUT type="FILE"> でなければなりません。
CharCodeC出力する漢字コードを指定します。省略時は AUTO とみなされます。
AUTO出力する漢字コードを入力と同じにします。日本語コードのときのみ有効です。
JIS出力する漢字コードを JIS (ISO-2022-JP) にします。
EUC出力する漢字コードを EUC-JP にします。
SJIS出力する漢字コードを Shift JIS にします。
UTF8出力する漢字コードを UTF-8 にします。Jcode.pm使用時のみ有効です。
NoWarningsNonチェックだけして個々の警告を表示しないようにします。
ViewSourceVonチェックしたHTMLを行番号付きで表示します。
LynxViewLonlynxでの見え方を表示します。
TextViewXテキストベースブラウザでの見え方を表示します。LynxViewが指定されているときは無効です。
noいずれも表示しません。
lynxlynxでの見え方を表示します。LynxViewと同じです。
w3mw3mでの見え方を表示します。
NoCheckonLynxViewやTextViewと共に指定したとき、文法チェックをしないようにします。
HTTPHeaderonURL指定のとき、HTTPレスポンスヘッダを表示するようにします。
OtherWindowOon結果のページから解説を参照するとき、別のウィンドウに表示します。
IgnoreDOCTYPEIonHTML中のDOCTYPE宣言を無視してHTMLVersionで指定されているヴァージョンでチェックします。この指定がないときは、DOCTYPE宣言があればそれを優先させ、なければHTMLVersionの指定によります。
HTMLVersionHIgnoreDOCTYPEが指定されているときや、HTML中にDOCTYPE宣言がないときに、どのHTMLでチェックするかを指定します。省略時は HTML4.01 Transitional とみなされます。
HTML10HTML1.0
HTML20HTML2.0
HTML2xHTML2.x
HTMLplusHTML+
HTML30HTML3.0
HTML32HTML3.2
HTML40-StrictHTML4.0 Strict
HTML40-TransitionalHTML4.0 Transitional
HTML40-FramesetHTML4.0 Frameset
HTML40-MobileHTML4.0 Mobile
HTML401-StrictHTML4.01 Strict
HTML401-TransitionalHTML4.01 Transitional
HTML401-FramesetHTML4.01 Frameset
XHTML1-StrictXHTML1.0 Strict
XHTML1-TransitionalXHTML1.0 Transitional
XHTML1-FramesetXHTML1.0 Frameset
XHTML11XHTML1.1
XHTML-RDFaXHTML + RDFa
XHTML-BasicXHTML Basic
XHTML-MPXHTML Mobile Profile 1.0
15445ISO/IEC 15445
15445-PreparationISO/IEC 15445 Preparation
Mozilla20Netscape Navigator 2.0
Mozilla30Netscape Navigator 3.0
Mozilla40Netscape Navigator 4.0
IE30-betaMicrosoft Internet Explorer 3.0 beta
IE30Microsoft Internet Explorer 3.0
IE40Microsoft Internet Explorer 4.0
IE50Microsoft Internet Explorer 5.0
IE55Microsoft Internet Explorer 5.5
WebExpIBM WebExplorer 1.1
Compact-HTMLCompact HTML
iMode10NTT DoCoMo iモード 1.0
iMode20NTT DoCoMo iモード 2.0
iMode30NTT DoCoMo iモード 3.0
iMode40NTT DoCoMo iモード 4.0
iMode-XHTML10NTT DoCoMo iモード XHTML 1.0
iMode-XHTML11NTT DoCoMo iモード XHTML 1.1
J-SkyWebJ-SkyWeb
J-SkyWebStationJ-SkyWeb Station
doti10ドットi 1.0
JPO特許出願用HTML
PedanticPonすべてのチェックを有効にします。
NoReligiousRon宗教的なチェックを無効にします。
NoAccessibilityAonアクセス性向上に関する警告を無効にします。
TimeOutT秒数リンク先リソースが存在するかどうかチェックするときのタイムアウト秒数を指定します。60より大きな値は指定できません。そのときは60とみなされます。0以下を指定するとチェックせずに無条件で存在するとみなされます。Pedantic=onでTimeOut=0とすれば、このチェック以外のすべてを有効にすることができます。
CheckGETonリンク先リソースが存在するかどうかチェックするときに、通常は効率的なHEADリクエストを用いますが、一部のISPはHEADリクエストを受け付けないことがあります。そのようなURLが含まれるときに指定します。HEADが失敗したときにGETで再リクエストします。
CheckListon(over-limit-whinesを除く)すべてのエラーチェックのon/offが指定されていることを示します。この指定がないときは、すべてのチェック状態は既定値に従います。Pedantic=onのときは無視されます。どういうチェックがあるのかは、htmllint.html や htmllintrc を参照してください。
EnableE既定値に対してどのチェックを有効にするかを指定します。複数指定するときは、Enable=unref-link,required のように空白を空けずにコンマで繋げます。Pedantic=onのときまたはCheckList=onのときは無視されます。どういうチェックがあるのかは、htmllint.html や htmllintrc を参照してください。
DisableD既定値に対してどのチェックを無効にするかを指定します。複数指定するときは、Disable=unknown-doctype,mailto-link,empty-container のように空白を空けずにコンマで繋げます。Pedantic=onのときまたはCheckList=onのときは無視されます。どういうチェックがあるのかは、htmllint.html や htmllintrc を参照してください。
LimitWhinesエラーの打ち切り限界数を指定します。省略時はLimitWhines=999です。

注意: 仕様は予告なく変更されます。