Another HTML-lint : How to use htmllint

# Another HTML-lint

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

## 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のみが存在するかどうか調べられます。

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

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