Another HTML-lint

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

lints / visits / since Jan 6, 1998


htmllint の使い方

Another HTML-lint は、Perl4では動作しません。JPerlではうまく動作しないかも知れません。
htmllint は、htmllint.pm を呼び出すだけのスクリプトで、チェッカ本体は htmllint.pm です。htmllint は、UNIXやWin32のコンソールなどで、次のように起動します。

    perl htmllint options file.html...

Classic MacOSでは、htmllint にHTMLファイルをドラッグ&ドロップします。MPW Shell でも動作させられます。そのときは htmllint をテキストファイルにします。

htmllint.env が htmllint と同じディレクトリに存在していれば読み込みます。その際、規則ファイルの場所を指示している $RULEDIR と、インクルードパスの指定などが動作に影響します。

オプションには以下が指定できます。

-d <warn>:指定された警告を無効にします。(各警告は , ; : のいずれかで区切る)
-e <warn>:指定された警告を有効にします。(各警告は , ; : のいずれかで区切る)
-f <file>:設定ファイル(htmllintrc)を指定します。
-pedantic:すべての警告を有効にします。(このとき -d -e の指定無効)
-nopedantic:すべての警告を有効にすることはしません。(*)
-religious:宗教的な警告を有効にします。(*)
-noreligious:宗教的な警告を無効にします。
-accessibility:アクセス性向上に関する警告を有効にします。(*)
-noaccessibility:アクセス性向上に関する警告を無効にします。
-banner:処理開始と終了メッセージを表示します。(*)
-nobanner:処理開始と終了メッセージを表示しません。
-score:チェックした HTML の点数を表示します。(*)
-scorenowhines:チェックした HTML の点数を警告ありのときのみ表示します。
-scoreonly:チェックした HTML の点数のみを表示します。
-noscore:チェックした HTML の点数を表示しません。
-prune:ディレクトリ指定のとき下位ディレクトリを探しません。
-noprune:ディレクトリ指定のとき下位ディレクトリを探します。(*)
-warnings:チェックによる警告を表示します。(*)
-nowarnings:チェックだけして何も警告を表示しません。
-linklist:HTML に含まれるリンク先を表示します。
-nolinklist:HTML に含まれるリンク先を表示しません。(*)
-lc:警告中の要素名や属性名を小文字で表示します。
-uc:警告中の要素名や属性名を大文字で表示します。XHTMLのときは無効です。(*)
-listwarnings:サポートされているすべての警告を表示します。
-w <style>:警告メッセージのスタイルを指定します。(右がそのスタイルです)
<style>=lint  file(#): warning-message
=short  #: warning-message
=long  #: warning-id: warning-message
=terse  file:#:warning-id
=verbose  file: #: warning-id: warning-message
指定がないときは lint とみなします。
-limit <n>:警告が指定された個数を超えた場合はチェックを打ち切ります。
-x <html>:指定された HTML ヴァージョンでチェックします。(大文字小文字区別なし)
<html>=html10
=html20 | RFC1866
=html2x | RFC2070 | i18n
=html+ | htmlplus
=html30 | arena
=html32 | wilbur
=html40 | html40s | html40-strict
=html40t | html40-transitional
=html40f | html40-frameset
=html40m | html40-mobile
=html401 | html401s | html401-strict
=html401t | html401-transitional
=html401f | html401-frameset
=xhtml1 | xhtml1s | xhtml1-strict
=xhtml1t | xhtml1-transitional
=xhtml1f | xhtml1-frameset
=xhtml11
=xhtml-rdfa
=xhtmlb
=xhtmlmp
=15445 | iso-html
=15445p | 15445-preparation | iso-html-preparation
=mozilla20
=mozilla30
=mozilla40 | navigator | netscape
=ie30b | msie30b
=ie30 | msie30
=ie40 | msie40
=ie50 | msie50
=ie55 | msie55 | microsoft
=webexp
=compact-html | compact
=imode10
=imode20
=imode30
=imode40
=imode-xhtml | ixhtml
=imode-xhtml11 | ixhtml11
=jskyweb
=jskystation
=doti10
=jpo
指定がないときは html401t とみなします。
-igndoctype:HTML 中の DOCTYPE 宣言を無視します。(**)
-usedoctype:HTML 中の DOCTYPE 宣言を無視しません。(**)
-igncharset:CHARSET の指定とコードの一致性を無視します。
-usecharset:CHARSET の指定とコードの一致性を無視しません。(*)
-local:HTML 中のローカルファイルの参照を許可します。(*)
-nolocal:HTML 中のローカルファイルの参照を禁止します。
-after <date>: 指定日以降のファイルのみチェックします。
<date>=YYYY-MM-DD-hh-mm-ss  区切りは空白数字以外任意、2002-7 のような途中までの指定可
=@file  このファイルのタイムスタンプを基準にする
-r <dir>:規則ファイル(*.rul)のディレクトリを指定します。指定がないときは htmllint と同じ場所とみなされます。
-v | -version:ヴァージョンを表示します。
-u | -help:このメッセージを表示します。
(*)
背反するオプションの省略時の既定値を示します。
(**)
-x が指定されているときは -igndoctype が、そうでないときは -usedoctype が省略時の既定値となります。

オプションはフルスペルで書く必要はありません。ユニークになる所までで構いません。例えば、-noscore は、-nos でOKです。背反するオプションは、後から指定した方が有効です。-e や -d を複数指定することもできます。 htmllint 内の $add_options に、既定のオプションを指定しておくこともできます。

-d や -e で指定する警告は、それぞれの警告の名前を指定します。複数指定するときは、-e unref-link,required のようにコンマで区切って空白を挟まずに指定します。-e や -d の後に空白を空け、コンマの前後に空白を空けてはいけません。また、-e unref-link -e required のように、別々のオプションとして指定することもできます。すべての警告の名前は、htmllint.html や htmllintrc を参照してください。また、-listwarnings オプションで全警告を表示させることもできます。そのとき、短縮名の付いている警告は、-e や -d の指定でそれを用いることができます。

-f で指定する設定ファイルは、サンプル htmllintrc が添付されています。これを加工して利用してください。また、環境変数 HTMLLINTRC で指定しておくと、起動時オプションを指定しなくてもそれを読みに行きます。htmllint.env 中の $HTMLLINTRC 変数に設定ファイル名を指定することができます。指定されているファイルが、. から始まっていない場合は、htmllint と同じディレクトリに存在する場合もそれが読み込まれます。.htmllintrc のように、. から始まるファイル名の場合は、UNIXのときに利用され、環境変数HOMEで示されるディレクトリにそのファイルがあると、初期状態として読み込みます。添付されている htmllintrc を参照してください。

ファイル名 - は標準入力を表わします。ファイルリストには、ワイルドカードを使用して *.html などと書くことができます。また、ディレクトリ名を指定すると、そのディレクトリ以下の(サプディレクトリも含む)すべての *.html、*.htm や *.shtml などが対象となります。この拡張子は、htmllint.env の $HTMLEXT 変数で変更することができます。サブディレクトリ以下を除きたいときは -prune オプションを併用します。
何もエラーがなければエラーステータス 0 で終了します。エラーがあれば標準出力に結果を出力し、エラーステータス 1 で終了します。

例えば、UNIXで、カレントディレクトリ以下のすべての .html をチェックするには次のようにすることもできます。

    perl htmllint -banner `find . -name "*.html"`

HTML中で参照しているインタネット上のURLが実際に存在するかどうかは、htmllint.cgi経由でないと調べられません。htmllint単体では調べられないので注意してください。これは、インタネットへのアクセスをすべてhtmllint.cgiで行なっているからです。 htmllint単体のときは、相対URLのみが存在するかどうか調べられます。

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


Updated: Jan 10, 2011
Created: Jun 19, 1997

みんなでねっと! 2015/03/05