1998/9/1 版
最新版の Tidy を入手するには、このページのオリジナル版: http://www.w3.org/People/Raggett/tidy をご覧下さい。 tidy の新しいバージョンが出た場合、メールでお知らせするよう登録する ことも可能です。
日本語版 tidy およびドキュメントの日本語訳に関しては、 http://www.w3.org/People/asada/tidy をご覧下さい。
HTML を編集していると、思わぬ間違いを犯してしまうことがよくあります。 こういう間違いを自動的に修正して、適当に書いたマークアップをきれいに してくれる、簡単な方法があれば良いと思いませんか? そう、Hewlett Packard の Dave Raggett に感謝しましょう。HTML TIDY はそのための フリーなユーティリティです。また tidy は非常に読みづらい HTML 専用 エディタや変換ツールの出力するマークアップにもきわめて有効で、障害を 持つ人々に対するページのアクセシビリティを改善するため、どのような点 に注意を払う必要があるか判断する手助けをします。
tidy は広範囲におよぶ問題を修正し、作業を行う上で注意すべき点を指摘 することが可能です。発見された各問題点は、簡単に探すことができるよう 行番号とコラム付きで一覧表示されます。修正方法のはっきりしない問題が ある場合、tidy は修正版を出力しません。このような場合、「警告」では なく「エラー」として表示されます。
tidy は、広く普及している Netscape や Microsoft のブラウザにおける 表示をもとに、マークアップを修正します。TIDY がどのように HTML を 完全にするかについて、いくつか例を示します:
<h1>heading <h2>subheading</h3>
これは
<h1>heading</h1> <h2>subheading</h2>
となります。
<p>here is a para <b>bold <i>bold italic</b> bold?</i> normal?
これは
<p>here is a para <b>bold <i>bold italic</i> bold?</b> normal?
となります。
<h1><i>italic heading</h1> <p>new paragraph
Netscape や Internet Explorer では、見出し以下の部分がすべて見出しの フォントサイズになってしまうという、予定外の結果となってしまいます!
これを Tidy は
<h1><i>italic heading</i></h1> <p>new paragraph
のように出力します。
<i><h1>heading</h1></i> <p>new paragraph <b>bold text <p>some more bold text
これを Tidy は
<h1><i>heading</i></h1> <p>new paragraph <b>bold text</b> <p><b>some more bold text</b>
のように出力します。
<h1><hr>heading</h1> <h2>sub<hr>heading</h2>
これを Tidy は
<hr> <h1>heading</h1> <h2>sub</h2> <hr> <h2>heading</h2>
のように出力します。
<a href="#refs">References<a>
これを Tidy は
<a href="#refs">References</a>
のように出力します。
<body> <li>1st list item <li>2nd list item
これは
<body> <ul> <li>1st list item</li> <li>2nd list item</li> </ul>
となります。
tidy は属性値に引用符合(クオート)がない場合、これを追加します。 また引用符合の閉じ忘れを見つけることも可能ですが、これは自分で修正 する必要があります。
tidy は、W3C の HTML 4.0 勧告で定義されている属性に関する包括的な知識 を持っています。したがって、属性やその値の入力間違いを見つけることが 可能になります。
tidy は、使われている HTML のバージョンによって、W3C 勧告に従い適切な DOCTYPE エレメントを追加します。
この場合 tidy は、> を挿入する位置を確実には判断できないので、自分 で修正する必要があります。
例えば、エレメントの中身をインデントするか否かなどについて、tidy が 修正版を出力する際における、出力スタイルを選ぶことができます。
tidy は文字エンコーディングとして US ASCII, ISO Latin-1, UTF-8, ISO 2022 系 7bit エンコードを選択することが可能です(訳注:raw モードを 利用すれば EUC, Shift JIS などのエンコーディングも利用できます)。 HTML 4.0 のすべてのエンティティが定義されており、修正版の出力では、 適切な HTML の名前エンティティを利用します。それ以外の通常範囲外の 文字は、数値エンティティとして出力されます。
tidy はグラフィカルでないブラウザを使っているユーザのため、アクセシビ リティに関する問題について、アドバイスします。もっとも一般的に目にする のは、table エレメントに summery 属性を付けるという助言でしょう。これ は table 役割や構造の簡単な説明を提供し、音声ブラウザのために役立ちます。
多くのツールが、FONT, NOBR, CENTER などのタグを使った HTML を作ります。 tidy の -clean オプションは、これらを CSS を使ったスタイルの プロパティとルールに置き換えます。このことはマークアップを読みやすくし、 メンテナンスを容易にし、ファイルのサイズを現象させます!
W3C の XML 1.0 勧告に準拠した XML プロセッサは、どのようなファイルを受 け付けるかについて、非常に厳密です。tidy は受け付けられないファイルを 修正するために役立ちます。tidy はまだ、すべての XML の仕様を理解する訳 ではありません。例えば CDATA セクションや DTD サブセットなど、は理解し ません。
<html> <head> </head> <body> <p> para which has enough text to cause a line break, and so test the wrapping mechanism for long lines. </p> <pre>This is <em>genuine preformatted</em> text </pre> <ul> <li> 1st list item </li> <li> 2nd list item </li> </ul> <!-- end comment --> </body> </html>
この文書はデフォルトで以下のようになります:
<html> <head> </head> <body> <p>para which has enough text to cause a line break, and so test the wrapping mechanism for long lines.</p> <pre>This is <em>genuine preformatted</em> text </pre> <ul> <li>1st list item </li> <li>2nd list item</li> </ul> <!-- end comment --> </body> </html>
tidy [[options] filename]*
tidy は(まだ) Windows プログラムではありません。もし tidy を引数 なしで起動した場合、標準入力からの入力をそのまま待ち続けます。tidy のデフォルトの入出力は、それぞれ標準入出力です。エラーは標準エラー 出力ですが、-f ファイル名 オプションを使ってリダイレクト することが可能です。
オリジナルのファイルを更新したい場合は、-m オプションを使い、特に 内容がひどい場合は、エラーメッセージを見直しやすいよう、-f オプション を使ってファイルに出力すると良いでしょう。 tidy はいくつかの文字エンコーディングオプションをサポートしています。 デフォルトでは、通常のテキストエディタで編集しやすいよう、ASCII に なっています。
例:
tidy -f errs.txt -m index.html
この例では、ファイル "index.html" に対して tidy を実行し、直接ファイル を更新し、エラーメッセージをファイル "errs.txt" に書き込みます。他の 複雑なソフトウェアと同様、tidy にはバグがある可能性もありますので、 実行する前に、元のファイルを保存しておくと良いでしょう。もし何かバグ を見つけたら、ぜひお知らせ下さい!
利用可能なオプションの一覧を表示する:
tidy -help
以下のような出力を得るでしょう:
tidy: file1 file2 ... HTML 整形ユーティリティ http://www.w3.org/People/Raggett/tidy/ を参照 tidy (1998 年 9 月 1 日版) のオプション -indent または -i エレメントの内容をインデントする -omit または -o 省略可能な終了タグを省く -wrap 72 テキストを 72 文字目で改行 (デフォルトは 68) -upper または -u タグを大文字にする -clean または -c font, nobr, center タグを削除 -raw 128 以上の文字を出力時に変換しない -ascii 入力に Latin-1、出力に ASCII を使用 -latin1 入出力に Latin-1 を使用 -iso2022 入出力に ISO-2022 ベースのエンコードを使用 -utf8 入出力に UTF-8 を使用 -modify または -m 元のファイルを修正 -errors または -e エラー表示のみ -f <file> エラーを <file> に出力 -xml 入力が XML の場合に使用 -asxml HTML を XML に変換 -help または -h オプション一覧 デフォルトでは入出力にそれぞれ標準入出力を使用 以下のように-f 以外の一文字オプションは組合せ可能: tidy -f errs.txt -imu foo.html HTML に関する詳しい情報は "Raggett on HTML" 参照, (c) 1998, Addison Wesley Longman, ISBN 0-201-17805-2
デフォルトの入出力は、それぞれ標準入出力です。-f 以外の一文字の オプションは、tidy -f errs.txt -imu foo.html のように、組み合わせて 使うことも可能です。
コードは ANSI C で書かれており、入出力に C 標準ライブラリを使って います。パーザは thread-safe ですが、整形出力部分のコードは(まだ) そうなっていません。パーザはトップダウンで動作し、メモリ上に完全な バースツリーを作成します。文書は必要に応じて拡張される文字バッファ に、UTF-8 として表現された Unicode で保存されます。このコードは、 Windows 95, Windows NT, Linux, MacOS, BeOS, SunOS, Solaris, IRIX, HP-UX などでテストされています。
gcc を使って tidy をコンパイルする場合、Makefile を仕様するか、 簡単に以下のように入力します:
gcc -o tidy *.c
Dave Raggett <dsr@w3.org> は Hewlett Packard の UK Laboratories のエンジニアで、 World Wide Web Consortium で HTML のリーダとして働いています。