Windows の Internet Explorer の Web browser で鼠の右ボタン (というか 第2ボタン) を押すなどすると出てくる献立項目になんか 便利っぽいものを追加するっていう、ありがちな奴です。
Windows Me + Internet Explorer 5.5 で書いてます。 他の版でもきちんと動くかは不明です。 (M$ 製品だし...)
その HTML 文書にあるアンカー (リンク; A 要素) の一覧を、 文書の先頭に吐き出します。その際、飛び先 URI や title 属性の内容も一緒に並べます。飛び先の言語などの情報 があればそれも出します。
また、文書中に入力欄 (フォーム; FORM 要素) があれば、 その送信先も併せて一覧にします。
HTML 文書中の注釈 (コメント; <!-- 〜 -->) などを 可視状態にします。
Internet Explorer が注釈と判断した (らしい) ものは 全て可視にします。ですから、文書型宣言 (<!DOCTYPE 〜>), XML 宣言や処理命令 (<? 〜 ?>) なども含まれます。
しかしそれらも場所によっては出てこなかったり、 不正な注釈 (例: <! 〜 >) が見えなかったり、 マーク区間 (<![〜[ 〜 ]]>) (そもそも IE5.5 は 上手く解釈出来ないらしい。) も見えなかったりなどします。
おまけ(?)で、 STYLE, SCRIPT, NOFRAMES, NOSCRIPT, NOEMBED, COMMENT 要素があれば、それも可視化します。 (ちなみに NOEMBED, COMMENT 両要素は W3C 仕様に基づく標準的な HTML の要素ではありません。) (なお、 NOFRAMES 要素は BODY 要素中のもの (IFRAME 要素の代替) です。 FRAMESET 要素中のものには対応していません。)
文書の先頭に、 head 要素内の主要な内容を吐き出します。
現在の所対応しているのは、 link 要素, meta 要素, title 要素, base 要素です。 title 要素は普段から 窓の題になっていますが、 clipboard に copy するのに 便利でしょう。
文書中の見出し (heading; Hn 要素) の一覧を先頭に吐き出します。もちろん一覧はリンクに なっていて、そこから見出しへ飛べます。
文書中の要素に関連する URI をその要素の脇に書き足します。
引用 (BLOCKQUOTE 要素, Q 要素) の引用元 URI が示されている (cite 属性) 時は、その URI を引用部のはじめに書き足します。 もちろんリンクになっているので直接飛べます。
追加・削除 (INS 要素・DEL 要素) の説明がある URI が示されている (cite 属性) 時は、そこへのリンクを追加・削除部の はじめに付け足します。また、追加・削除日時の情報が有る (datetime 属性) 場合は、追加・削除部分のツールチップ (鼠を上に置いて しばらく待つと出てくるヒント・メッセージ) に付け足します。
画像 (IMG 要素) の説明文の URI が示されている (longdesc 属性) 時に、そこへのリンクを画像の隣に付け足します。 画像が地図 (イメージマップ) の時は、画像の脇に [MAP] と書き足します。 (あまり意味は無いです:-) そして、 利用者側画像地図 (usemap 属性) の時は、「MAP」の部分を 画像地図へのリンクにします。
表 (TABLE 要素) の要約 (summary 属性) がある時は、 それを表のツールチップに付け足します。
アンカー (リンク; A 要素) のリンク先 URI を ツールチップ (鼠を上に置いてしばらく待つと出てくるヒント・メッセージ) に付け足します。状況棒 (status bar) にも出ますが、 あの欄では狭くて全部読めません:-(
別窓で開くようになっている (target 属性) 時は、 その旨もツールチップに書きます。ついでに、 [same window] というリンクを脇に書き足します。 これであのうざったい新窓開きを未然に防げるかもしれません:-)
画像 (IMG 要素) の説明文が用意されている (longdesc 属性) 時に、それを開きます。この項目は画像に対してのみ有効です。
同じ窓で開くのと違う窓で開くのの2種類を用意しています。
説明文がない時は何もしません。 (但し状況棒 (status bar) にありませんと書きます。) (説明文があるかどうかは やってみるまでわかりません。IE の仕様です;-) (または上記の Show relative URIs で URI を出せば 分かります。ってそれじゃあ意味無いじゃん。))
こういう系だと、 INF ファイルか REG ファイルが ついてきますけど、面倒なのでそのようなものはありません:-)
しかし何もないと自分で使うのにも不便なので(笑)、 REG ファイルを吐き出す Perl script (mkreg.pl) を書きました。
また、更にそれを呼び出す mkreg.bat もあります。 これを実行すると、 install 用 REG ファイルと、 uninstall 用 JavaScript (WSH 用) ファイルを吐き出します。
この Perl script は、同じディレクトリ (または指定した ディレクトリ) の HTML ファイルを見て、 それが追加項目の場合は、 REG ファイルの項目を作ります。 詳しくは script と各項目 HTML ファイルの先頭をみて下さい。
この script を各 HTML と同じ場所に置いて、 バッチファイルを実行すれば OK です。 (その場所をそのまま 使います。 (慣習的には C:\Windows\Web にするらしいです。))
不要な項目は、対応するファイルは削除してから バッチファイルを実行すれば、(当然) REG ファイルには現れません。
で、出来た REG ファイルを (Windows 既定状態なら) double-click すると install 出来ます。
たかがこれだけで Perl を install するのは面倒だと思いますので、 (でも Perl あると便利ですよ。) 上記のようにして 作ったファイルも置いときます。
各 HTML を置くディレクトリは C:\Windows\Web になっています。 他の場所が良いならメモ帳などで開いて修正して下さい。
(必要なら) 修正した menuitems-add.reg を実行すると、 install 出来ます。
なお、追加した項目は新しく開いた Internet Explorer の窓から有効になります。
Perl を使った場合も使わなかった場合も、 利用者スタイルを手動で追加する必要があります。
Internet Explorer の「ツール」→「インターネット オプション」 (または「表示」→「オプション」) の「全般」→「ユーザー補助」→「ユーザー スタイル シート」で指定するファイルです。
各項目の HTML ファイルを参考に、適宜利用者スタイル を追加して下さい。というのは非常に面倒だと思いますので:-)、 利用者 スタイルシートの例: user-style-example.css を用意しました。
最新版は Git で入手出来ます。 (Suika)
参考: experimental 枝では、上記に説明した以外の 機能も幾つか含みますが、実用的でないとか 完全には機能しないとかの理由で省かれています。
このソフトウェアは自由ソフトウェアです。 GNU GPL に従って 利用出来ます。詳しくは各ファイルを御参照下さい。
改良された際は是非お知らせ下さい。 改善の提案などもお待ちしております。
献立項目名が全部英語@ラテン文字なのは、 source file 中に非 ASCII 文字があると (現状では) なんだかなあと思ったからです。必要に応じて修正して下さい。 (たぶん Microsoft CP932 (シフト JIS) にしないと、 レジストリの操作の時におかしくなると思われます。 (もしかしたら UTF-16LE でも OK?))
献立項目名以外の人が読む文字の部分も同様の理由で 全部英語@ラテン文字です。 (さすがに gettext とか 使えないし...)
このソフトウェアは、 わかばはもう維持していません。 そもそも Internet Explorer 自体使ってもいません。
このソフトウェアが実装していた機能の幾つかは、 Mozilla や Opera のような普通のブラウザは実装していますし、 そうでない機能も追加のソフトウェアで提供されています。
はっきりいって IE のような時代遅れで低機能なブラウザをこのソフトウェアで補いながら使うのは非効率的だと思うのですが、 それでも IE に愛着のある方がいらっしゃって、 しかも開発を続けて下さるのなら、 それはそれで結構なことです。
これまでの CVS リポジトリーにかえて
Git リポジトリーを用意しました。