• 更新:
  • 投稿:
  • カテゴリィ:

HTML Tidy

HTML Tidy をご存じでしょうか? HTML 構造を解析してエラーを表示したり修正するツール(またはプロジェクト名)です。W3C教信者は知らないと魔女狩に会うかも(ねーよ)。

Clean up your Web pages with HTML TIDY

Firefox を愛用しているサイト管理者の中には、Html Validator for Firefox and Mozilla 利用者も多いでしょう。この拡張機能(extension か add-on か統一して欲しい)でも Tidy が使われています。しかし、自分の環境だと何故かすぐ Firefox ごと落ちるので使えない……。

今回は HTML Tidy を GUI で操作したり、Xyzzy から利用する方法を紹介します。

Tidy を GUI で操作

TidyGUI を使えば、通常だとコマンド入力して(CUI で)使う必要がある Tidy が普通のアプリケーションソフトのように(GUI で)扱えます。

XHTML化計画 - HTML Tidy & TidyGUIを使ってみる で実際の操作方法を見ることができます。

Xyzzy で Tidy を使う

今回、自分が導入したのは HTML入力サポート (chez sugi) で公開されている html-support.l です。これは HTML文字実体参照とUnicodeキャラクターの相互変換することができるのですが、オマケ(?)として、Tidy に編集中のファイルを渡して、文法的に適正な(Valid)XHTML か確認と修正(初期状態では強制的に修正)を行う機能がついています。

ちょっと試してみましたが、<font size=1>hoge</font> などという記述を <span class="c1">hoge</span>強制変換するという、何とも豪快な仕様が気に入りました。ちなみに Tidy でどのような処理を行うかは設定可能です(ちょっと難しいけど)。

導入方法

asiamoth 的導入法はこんな感じ

  1. Tidy Binaries から“tidy-exe.zip”をダウンロード
  2. 解凍して tidy.exe を ~/bin/ (Xyzzy のある場所に bin フォルダを作る)に置く
  3. .xyzzy か ~/site-lisp/siteinit.l に下記を記述

; html-support
; http://chez-sugi.net/xyzzy/000952.html
(require "html-support")
(add-hook '*html+-mode-hook* 'ht:html-support-mode)
(setq ht:*tidy-command* (merge-pathnames "bin/tidy.exe" (si:system-root)))

自分は職場と自宅で Xyzzy を使っているのですが、それぞれの PC でディレクトリ構造が異なるので、最後の行のような工夫が必要なのです。

キーバインドを変更

さらに、キーバインドが割り当てられているのが「バッファ全体の特定文字を変換」だったので、「リージョン(≒選択範囲)内のみ変換」にキーを割り当てるようにしました。── siteinit.l に記述する方法が判らなかったので html-support.l を直接変更、というのがダサカッコ悪いですが。

420 行から 2 行を下記のように変更しました。

; (define-key keymap '(#\C-c #\e) #'character-to-entity)
; (define-key keymap '(#\C-c #\c) #'entity-to-character)
(define-key keymap '(#\C-c #\e) #'character-to-entity-region)
(define-key keymap '(#\C-c #\c) #'entity-to-character-region)

快適 XHTML

これで Xyzzy から手軽に Web1.0 な HTML を XHTML に変換できるようになりました。html-support.l は標準設定で XML や DOCTYPE 宣言もチェックしてくれます。宣言を書いていない場合は文字コードに合わせて、自動的に追記してくれるのが便利!

最終的に「その記述は正しいのか?」は「にんげんさま」が判断する必要がありますが(その <div>……</div> いらなくね? とか)、極力ストレス無く XHTML が書けるのはイイですね。

[2] このページの一番上へ戻る