Another HTML-lint : How to use htmllint.cgi

# Another HTML-lint

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

## htmllint.cgi の使い方

### 簡単な応用

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

> `<FORM action="http://openlab.ring.gr.jp/k16/htmllint/htmllint.cgi" method="POST">
> <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=on` は `V=on` と書けます。また、`=on` は省略することができます。

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

は

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

と書けます。

変数 | 値 | 意味
Method | M | チェックするHTMLをURLから取得するか、直接記述するかを指定します。省略時はURLから取得するとみなされます。
URL | チェックするHTMLを変数URLで示されるURLから取得します。
Data | チェックするHTMLを変数Dataの値そのものとします。
File | チェックするHTMLを変数Fileで示されるクライアント上のファイルから取得します。このとき、`<FORM enctype="multipart/form-data">` でなければなりません。
URL | Method=URLのときのURLを指定します。このURLは、htmllint.cgi から見える場所になければなりません。つまり、外部からの要求に対して、ファイアウォール内のファイルなどは取得できません。 URLが指定されていないときは、(環境変数HTTP_REFERERで示される)直前の参照サイトとみなされます。これも空ならMethod=Dataとみなされます。
Data | Method=DataのときのHTMLを値として指定します。たいていは、`<TEXTAREA>` などに用います。
File | Method=Fileのときのクライアント上のファイルを指定します。`<INPUT type="FILE">` でなければなりません。
CharCode | C | 出力する漢字コードを指定します。省略時は AUTO とみなされます。
AUTO | 出力する漢字コードを入力と同じにします。日本語コードのときのみ有効です。
JIS | 出力する漢字コードを JIS (ISO-2022-JP) にします。
EUC | 出力する漢字コードを EUC-JP にします。
SJIS | 出力する漢字コードを Shift JIS にします。
UTF8 | 出力する漢字コードを UTF-8 にします。Jcode.pm使用時のみ有効です。
NoWarnings | N | on | チェックだけして個々の警告を表示しないようにします。
ViewSource | V | on | チェックしたHTMLを行番号付きで表示します。
LynxView | L | on | lynxでの見え方を表示します。
TextView | X | テキストベースブラウザでの見え方を表示します。LynxViewが指定されているときは無効です。
no | いずれも表示しません。
lynx | lynxでの見え方を表示します。LynxViewと同じです。
w3m | w3mでの見え方を表示します。
NoCheck | on | LynxViewやTextViewと共に指定したとき、文法チェックをしないようにします。
HTTPHeader | on | URL指定のとき、HTTPレスポンスヘッダを表示するようにします。
OtherWindow | O | on | 結果のページから解説を参照するとき、別のウィンドウに表示します。
IgnoreDOCTYPE | I | on | HTML中のDOCTYPE宣言を無視してHTMLVersionで指定されているヴァージョンでチェックします。この指定がないときは、DOCTYPE宣言があればそれを優先させ、なければHTMLVersionの指定によります。
HTMLVersion | H | IgnoreDOCTYPEが指定されているときや、HTML中にDOCTYPE宣言がないときに、どのHTMLでチェックするかを指定します。省略時は HTML4.01 Transitional とみなされます。
HTML10 | HTML1.0
HTML20 | HTML2.0
HTML2x | HTML2.x
HTMLplus | HTML+
HTML30 | HTML3.0
HTML32 | HTML3.2
HTML40-Strict | HTML4.0 Strict
HTML40-Transitional | HTML4.0 Transitional
HTML40-Frameset | HTML4.0 Frameset
HTML40-Mobile | HTML4.0 Mobile
HTML401-Strict | HTML4.01 Strict
HTML401-Transitional | HTML4.01 Transitional
HTML401-Frameset | HTML4.01 Frameset
XHTML1-Strict | XHTML1.0 Strict
XHTML1-Transitional | XHTML1.0 Transitional
XHTML1-Frameset | XHTML1.0 Frameset
XHTML11 | XHTML1.1
XHTML-RDFa | XHTML + RDFa
XHTML-Basic | XHTML Basic
XHTML-MP | XHTML Mobile Profile 1.0
15445 | ISO/IEC 15445
15445-Preparation | ISO/IEC 15445 Preparation
Mozilla20 | Netscape Navigator 2.0
Mozilla30 | Netscape Navigator 3.0
Mozilla40 | Netscape Navigator 4.0
IE30-beta | Microsoft Internet Explorer 3.0 beta
IE30 | Microsoft Internet Explorer 3.0
IE40 | Microsoft Internet Explorer 4.0
IE50 | Microsoft Internet Explorer 5.0
IE55 | Microsoft Internet Explorer 5.5
WebExp | IBM WebExplorer 1.1
Compact-HTML | Compact HTML
iMode10 | NTT DoCoMo iモード 1.0
iMode20 | NTT DoCoMo iモード 2.0
iMode30 | NTT DoCoMo iモード 3.0
iMode40 | NTT DoCoMo iモード 4.0
iMode-XHTML10 | NTT DoCoMo iモード XHTML 1.0
iMode-XHTML11 | NTT DoCoMo iモード XHTML 1.1
J-SkyWeb | J-SkyWeb
J-SkyWebStation | J-SkyWeb Station
doti10 | ドットi 1.0
JPO | 特許出願用HTML
Pedantic | P | on | すべてのチェックを有効にします。
NoReligious | R | on | 宗教的なチェックを無効にします。
NoAccessibility | A | on | アクセス性向上に関する警告を無効にします。
TimeOut | T | 秒数 | リンク先リソースが存在するかどうかチェックするときのタイムアウト秒数を指定します。60より大きな値は指定できません。そのときは60とみなされます。0以下を指定するとチェックせずに無条件で存在するとみなされます。Pedantic=onでTimeOut=0とすれば、このチェック以外のすべてを有効にすることができます。
CheckGET | on | リンク先リソースが存在するかどうかチェックするときに、通常は効率的なHEADリクエストを用いますが、一部のISPはHEADリクエストを受け付けないことがあります。そのようなURLが含まれるときに指定します。HEADが失敗したときにGETで再リクエストします。
CheckList | on | (over-limit-whinesを除く)すべてのエラーチェックのon/offが指定されていることを示します。この指定がないときは、すべてのチェック状態は既定値に従います。Pedantic=onのときは無視されます。どういうチェックがあるのかは、htmllint.html や htmllintrc を参照してください。
Enable | E | 既定値に対してどのチェックを有効にするかを指定します。複数指定するときは、Enable=unref-link,required のように空白を空けずにコンマで繋げます。Pedantic=onのときまたはCheckList=onのときは無視されます。どういうチェックがあるのかは、htmllint.html や htmllintrc を参照してください。
Disable | D | 既定値に対してどのチェックを無効にするかを指定します。複数指定するときは、Disable=unknown-doctype,mailto-link,empty-container のように空白を空けずにコンマで繋げます。Pedantic=onのときまたはCheckList=onのときは無視されます。どういうチェックがあるのかは、htmllint.html や htmllintrc を参照してください。
LimitWhines | エラーの打ち切り限界数を指定します。省略時はLimitWhines=999です。

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

このサイトの運営は作者が行なっているわけではありませんのでご注意ください。
作者が管理しているのはプライマリサイトだけです。
このサイトの管理人はその連絡先を明記してください。明記されていないサイトは正しくない利用形態です。
営利目的の利用は有料です。
著作権表示を除き、HTMLの改変は自由に行なってください。