w3m の local CGI では通常の CGI プロトコル以外に、特殊なヘッダ w3m-control: を使うことができます。このヘッダには、w3mの任意の機能を書くことができ、文書を読み込んだ後で実行することができます。詳しくは、w3m-0.1.4.tar.gz の doc-jp/MANUAL.html を参照してください。
w3m を自分の perl スクリプトに利用する場合に一番便利なのは、ダイアログボックスや、入力用のフォームが簡単にできるということです。例えば、検索用のプログラムを作ったとき、perl だけなら次のように、
キーワードを入力してください。: dns [Ret]
検索件数を入力してください。: 40 [Ret]
検索を始めて良いですか(yes/no):y [Ret]
と逐次的に入力します。しかし、下記の例のように、フォームに入力できたら、使用感が随分違います。
キーワード:____________________ |
件数 :____________________ |
フォームを作成するだけなら Tcl/Tk がありますが、local CGI なら、自分がいつも使っている perl を使うことができますし、インターフェースが CGI なので新しいことを憶える必要がありません。
フォームを利用するだけなら前節で述べたような通常の local CGI で十分なのですが、w3m-control: ヘッダを利用するとカーソルをあらかじめリンクの位置に移動しておいたり、キャンセルボタンを作ったりなどの細かな調節をすることができます。
w3m-control: ヘッダ機能自体ができたてのホヤホヤ状態なので、解説できる程のテクニックはないのですが、サンプルを用意しましたので下のリンクからダウンロードして遊んでみてください。tar.gz 形式になっていますから。次のようにして解凍してください。
$ tar -zxvf sample.tar.gzインストール方法、使用法は解凍後に、sample/README を読んでください。
サンプルスクリプト(ここからダウンロードしてください):sample.tar.gz
sample.tar.gz をダウンロードしたら次のようにすると、sample ディレクトリー以下に数個のスクリプトファイルが解凍されます。
$ tar -zxvf sample.tar.gzつぎに local CGI を作動させるための /cgi-bin/ ディレクトリーを作ります。/cgi-bin/ ディレクトリーとは w3m が file:///cgi-bin/ で認識することのできるディレクトリーです。どのディレクトリーでも指定することが可能ですが、w3m のオプションメニューで指定しなければなりません。ここでは、自分のホームディレクトリーに ~/cgi-bin/ を作って、それを /cgi-bin/ に指定することにします。
$ mkdir ~/cgi-bin
次に w3m . と入力して w3m を起動し o キーを押してオプションメニューを表示させます。/cgi-bin/ の設定は、「ディレクトリー設定」セクションの /cgi-bin で表されるディレクトリーで設定します。/cgi-bin 設定用のフィールドにカーソルを移動させ、Ret キーを押すと、最下行で入力用のプロンプトが出ますから、/home/userid/cgi-bin/ とフルパスで入力して Ret キーを押します。つぎに、[OK] フィールドにカーソルを移動させ Ret キーをおすと準備完了です。
/cgi-bin/ ディレクトリーの設定が終ったら、サンプルスクリプトを sample ディレクトリーごと ~/cgi-bin/ ディレクトリーに移動させます。
$ mv sample ~/cgi-bin/サンプルスクリプトは、カレントディレクトリー内の HTML ファイルを、新規作成したり、リスト表示したり、削除したり、検索したりするためのスクリプトです。起動するためにはまず、HTML 文書を作成したいディレクトリーへ cd コマンドで移動した後、コマンドラインから次のように入力するとメインメニューが表示されます。
$ ~/cgi-bin/sample/mmメインメニューは次のように表示されます。
Main Menu Directory : /home/userid/documents Create HTML file File list Remove File Search keyword
サンプルスクリプトの使用法は簡単です。メニュー項目にカーソルを移動させてリターンキーを押すと、それぞれの処理のためのダイアログに移動できます。ほとんどカーソル移動キーとリターンキーだけで操作できます。
このように、w3m-contorol: ヘッダをつかった local CGI スクリプトでは、GUIのインターフェースのような使いやすいインターフェースを簡単に作ることができます。
具体的にどうやってダイアログを作るかは次回紹介したいと思います。
続く...