htmllint - HTML-lint実行

CONTENTS

最新版

概要

アーカイブ付属の解説テキスト: htmllint.txt 直

このマクロhtmllint.macは、秀丸エディタからAnother HTML-lintを簡単に使用するためのマクロです。

Another HTML-lintとは、かの有名なk16さんが作成したHTML文法チェッカーです。 そもそもAnother HTML-lintにはゲートウェイサービスがあり、そちらを利用しても良いのですが、インフラのある環境でしか利用できないという難点があります。手元でHTMLファイルを編集している最中に、気軽に使用できるとは言えません。それを秀丸エディタ上から簡単に実行しようというのが、このマクロの趣旨です。ただしそれには、HTML-lintを自分のPCにインストールする必要があり、またHTML-lintはPerlを使用するため(そしてWindowsにはPerlが標準でインストールされていないため)、それらの準備が必要となります。
このページではそれらインストール手順を含めて書いています。

『WZから秀丸への乗り換え記』で、こんなことを書きました。

WZは、HTML(XHTML)をテキストエディタで書く人のための機能が充実している。その一つにHTML文法チェックがある。Another HTML-lintと連携し、簡単にHTMLの文法チェックを行うことができる。
〜中略〜
まだ詳しく調べてないが、工夫すれば秀丸と連携することも可能なようだ。これはぜひ実現したい。
と思ったら、なんだかちょっとめんどーそうだ。秀丸マクロから外部プログラムを起動し、その標準出力をパイプで読めれば簡単なのだが‥‥。
run文を起動時にテンポラリへリダイレクトさせ、その結果を読み込み、その後テンポラリを消しておく――ってなことをしなきゃダメか?

秀丸エディタのマクロヘルプを読み直してみた結果、やっぱり一時ファイルに結果をリダイレクトするしか方法はなさそうで、しかも秀丸マクロからは一時ファイルを削除することはできないようです(秀丸マクロのヘルプを検索しても、それらしい名前の文が見つかりませんでした)。 ちょっと悩んではみたものの、すっぱり諦めて、その通りの方法で実現することにしました。それがこのマクロ、htmllint.macです。

こんなんで概要の説明になっていますでしょうか。。。

2009年3月追記:
秀丸マクロでも標準入出力は使えることを、緒方さんという人に教えていただきました。
2009/3/12に書いていますので、興味のある人はお読みください。

セットアップ

概要の章で書いた通り、拙作のhtmllint.macは、Another HTML-lint秀丸エディタから使うためのマクロです。つまり、Another HTML-lintがインストールされていない環境では役に立ちません。

よってまず本章では、実行に必要なActivePerl、Jcode、Another HTML-lintのインストール方法について説明します(説明はしますが、これらのインストール方法についてのサポートはできませんので、あしからずご了承ください。私自身の覚え書きの意味を含めて説明を書きます)。 すでにAnother HTML-lintをお使いの方は、『このマクロhtmllint.macのインストール』からお読みください。

私は長年WZ EDITORを愛用してきて、HTML-lintは当たり前のように使ってきました。今回、WZ EDITORXHTMLプラグイン マニュアルを読み返しながら、再度最新版のインストールを行ってみました。私が説明を書くより、(エディタは違いますが、HTML-lintを使用することに変わりはないので)そちらを見た方がわかりやすいかもしれません。

ActivePerlのインストール

まずはActivePerlをインストールします。 ActiveState の[DOWNLOADS]-[Language Downloads]から最新版をダウンロードし、インストールを行ってください。ダブルクリックするだけで、後は画面の指示に従っていけば、簡単にインストールが完了するはずです。

2007年7月現在の最新版は(実際に私がインストールしたのは)、ActivePerl-5.8.8.820-MSWin32-x86-274739.msiです。

インストールが完了したら、動作確認してみます。コマンドプロンプトから「perl --version」を実行してみましょう。

perl --versionを実行したところ。

上図のようにバージョンが表示されれば、インストールできています。

本マクロhtmllint.macでは、ActivePerlのインストール先は、デフォルトのC:\Perlであると想定しています。ActivePerlのインストール時に、特に指定しなければC:\Perlへインストールされます。もし他のフォルダへインストールした場合は、本マクロの設定ファイルhtmllint.iniを、修正する必要があります(詳細は『環境設定』の章を参照してください)。以下は、C:\Perlへインストールしたと仮定して説明します。

Jcode.pmのインストール

次にJcode.pmをインストールします。 Jcode.pm - jcode.pl の後継ページ からJcode.pmをダウンロードします(HTML-lintを使いたいだけなら、Jcode.pmさえ入れれば、他のライブラリをインストールする必要はありません)。

2007年7月現在の最新版は(実際に私がインストールしたのは)、Jcode-2.06.zipです。

zipファイルを解凍し、READMEを読むと、「perl Makefile.PLを実行せい」と書いてあるので、zipファイルを解凍したフォルダで実行します。下図は、C:\Temp\Extract\Jcode-2.06に解凍した場合の例です。

zipファイル解凍フォルダでperl Makefile.PLを実行し、dirしてみたところ。

上記で生成されたJcode.pmとJcodeフォルダを、C:\Perl\site\libへコピーします。

C:\Perl\site\lib下へコピーしたところ。

Another HTML-lintのインストール

ようやくAnother HTML-lintのインストールです。 Another HTML-lintダウンロードページから、htmllint.lzhをダウンロードします。そのページに書いてある通り、htmllint.zipはEUC/LF(ぶっちゃけLinux系)、htmllint.lzhSJIS/CRLF(要するにWindows系)なので、だったら俺はhtmllint.zipだろうと思いつつも、htmllint.lzhの方をダウンロードします。

解凍したら、フォルダごとC:\Perl\htmllintとして置きます。

解凍したhtmllintをC:\Perl下へコピーしたところ。

このマクロhtmllint.macのインストール

解凍してできるhtmllint.macをマクロ用フォルダにコピーしてください。

マクロ用フォルダとは、[その他]-[動作環境]-[環境]の[マクロファイル用のフォルダ]で、あなたが設定しているフォルダです。特に設定を変えていない場合、秀丸をインストールしたフォルダ (標準ではC:\Program Files\Hidemaru) がマクロ用フォルダになります。

このマクロのLZHファイルを解凍すると、htmllint.iniが同梱されています。このINIファイルは、このページに書かれた通りにセットアップを行ったのであれば不要です。削除してしまって構いません。そうでない場合は、『環境設定』の章を参照して設定を行ってください。

動作確認

前節までで一通りのインストールが終わりました。HTML-lintが動作するか、確認してみます。HTML-lintをインストールしたフォルダで、(ちょっと意地悪ですが)そこに置いてあるHTMLファイルに対して文法チェックさせてみましょう。「perl htmllint -score index.html」と実行してみます。

C:\Perl\htmllintフォルダで、htmllintを実行しようとしているところ。

実行結果。指摘は多いが結果は100点!

このマクロhtmllint.macは、カレントファイルに対して上記処理を秀丸エディタから実行し、その結果を秀丸エディタのウィンドウで開き、そうすることでエラー箇所に簡単にタグジャンプできるようにしただけ――のマクロです。

逆に言えば、そもそも上記のようにしてHTML-lintが動作しないのであれば、このマクロは用をなしません(まともに動作しませんし、動作することに意味がありません)。

使用方法

  1. 文法チェックを行いたいHTMLファイルを秀丸で開いている状態で、このマクロを実行します。すると、ウィンドウのタイトルが「HTML-lint: 解析中。。。」と変わり、裏で文法チェック処理が実行されます。おおむね数秒で終了します。

    マクロを起動したところ。タイトルを見ると、解析中なのがわかる。

  2. 文法チェックが終了すると、自動的に解析結果が表示されます(解析結果ファイル*1をリードオンリーでオープンします)。

    解析結果が表示されたところ。

  3. 表示された解析結果からタグジャンプできますので、エラー箇所にタグジャンプして、修正を行います。

    エラー箇所にタグジャンプさせたところ。

    以上を繰り返し、HTMLファイルの編集を行っていくことになります。

環境設定

ActivePerlおよびAnother HTML-lintを、このページに書かれた通りにインストールしたのであれば、特別な設定は不要です。

インストール先フォルダを変更した場合(および、このマクロを使用する以前に別のフォルダにインストールしていたのであれば)、htmllint.iniをこのマクロと同一ディレクトリにコピーして、perl.exeとHTML-lintのパスを指定してください。

このマクロに同梱されているhtmllint.iniの初期値は、下記の通りとなっています。

[path]
perl=C:\Perl\bin\perl.exe
htmllint=C:\Perl\htmllint\htmllint

上記はデフォルト値です。従って、このページに書かれた通りにインストールしたのであれば、htmllint.iniは不要です。つまり、htmllint.iniが存在していない場合は、上記デフォルト値通りであると解釈します。

更新履歴

Ver.1.00 2007/8/1
初版。

*1:解析結果ファイルは、環境変数TEMPで指定されているフォルダ下に、htmllint.lintという名前で生成されます(標準ではC:\WINDOWS\Tempだと思います。私はWindows導入後は真っ先にこの設定を変えてしまうので、標準がどこなのか知りません(^^;)。
マクロ終了時にこのファイルは削除されずに残りますが、何度実行してもこのファイルだけを再利用するので、ファイルが残ってしまうことを特に気にする必要はないと思います。