実践! 統合環境

ここでは、lynxを統合環境に使ってHTML文書の作成をします。「知的生産のためのコンピュータ技術とは」などと大きなことを言いましたが、個人的な文書情報の整理の核となるのはHTMLではないでしょうか。なんと言ってもハイパーリンクを張ることができるのが強みです。Lynxを利用すると、HTML文書をレンダリングしてリンクが動作するかどうか確認しながら編集を進めることができます。

  1. HTML文書のテンプレートをつくる

    HTML文書を大量に作る場合、<html>以下の定型的タグをいちいち入力するのは大変です。そこで、HTML文書のテンプレートを作成するperlスクリプトを作成します。次のスクリプトを tmplt.pl と言う名前で作成し、chmod 755 tmplt.pl で実行可能ファイルにします。

    #!/usr/bin/perl
    $title=$ARGV[0];
    if ( $title eq '' ) {
        print "Usage: tmplt.pl <titlename>\n";
        exit;
    }
    open( FILE, "> $title.html" );
    print FILE << "EOF";
    <html>
    <head><title>$title</title></head>
    <body>
    $title
    </body>
    </html>
    EOF
    close( FILE );
    

    このスクリプトを tmplt.pl <タイトル名>とコマンドラインから入力すると、タイトル名に .html 拡張子をつけたHTMLファイルのテンプレートができます。

    $ tmplt.pl example1
    $ ls
    $ example1.html tmplt.pl

    tmplt.pl はどのディレクトリーからも使いたいので ~/bin/ ディレクトリーにいれておきます。~/binディレクトリーは .bash_profile などに PATH=$PATH:~/bin の1行を書き加えて環境変数PATHに登録しておく必要があります。新しいPATHを有効にするためには、一旦logoutした後、再ログインする必要があります。詳しいことはUnixの教科書を参照してください。この説明が分かりにくいときは、HTML文書を保存する予定のディレクトリーに tmplt.pl をコピーしておくと問題なく使うことができます。

    $ mv tmplt.pl ~/bin

  2. HTML文書をいれるディレクトリーを作る

    それでは、まず、HTML文書をいれるディレクトリーを作成します。名前を myhtmlとしておきます。それから、ワーキングディレクトリーをmyhtmlへ移動します。

    $ mkdir myhtml
    $ cd myhtml

    myhtmlには、まだ何のファイルもありません。そこで、インデックスページをつくります。

    $ tmplt.pl index

  3. Lynxを起動してHTML文書作成の統合環境として使う

    ここから、Lynxを使います。lynx . と入力して現在のワーキングディレクトリーの内容を表示します。ファイルは index.htmlしかないので、一つ上の階層のディレクトリーへのリンク ../と、index.html ファイルへのリンクの2つしか見えません。

    $ lynx .

    下矢印キーで index.html を選択して、右矢印でリンクをたどると、index.htmlがレンダリングして表示されます。まだ、なにも入力していないので index とだけ表示されているはずです。そこで、'e'キーを押して Emacs を起動し、index.htmlを編集します。

    <body>の部分のhello, worldを消して次の文を入力します。

    <center><h2>目次のページ</h2></center>
    <a href="doc_one.html">文書1</a>

    Control-x Control-s でバッファーをファイルに保存して、Control-x Control-c でEmacsを終了すると、画面はLynxに戻ります。今度は「目次のページ」のタイトルと「文書1」へのリンクができているはずです。右矢印でリンクをたどろうとしてもファイルがないので画面は変わりません。

  4. Lynxからshellを起動する

    ここで、'!'キーを押すとLynxがシェルを起動させます。シェルプロンプトで tmplt.pl doc_one と入力します。そのあと、exit でシェルを終了します。

    $ tmplt.pl doc_one
    $ exit

  5. URLのリンクを作る

    また、Lynxの画面に戻りました。もう一度右矢印を押してみます。今度はdoc_one.htmlの画面があらわれました。ここで、また'e'キーを押してこのファイルを編集します。先程のように doc_one を消して次の文章を入力します。

    <p>Linux関係の情報は<a href="http://www.linux.or.jp">日本Linux協会</a>のホームページにあります。</p>

    当然ですがHTML文書にはURLへのリンクを張ることができます。自分のノートからただちに世界のHTML文書を参照することができます。

  6. 全文検索をする

    こうして作成した文書データを検索したくなるのは当然です。まずは、'q'キーでLynxを一旦終了してください。検索用スクリプト lgrep を次のように作成します。chmod 755 srch.plとしてパーミッションを実行可能にするのを忘れないでください。lgrep は myhtml ディレクトリーか、パスを通した ~/bin/ ディレクトリーに入れておいてください。lgrep は grep の機能拡張版として使えるので、操作法は grep と同じになります。

    #!/bin/sh
    
    grep $@ | lf_lynx.pl > ~/.lgrep.html
    exec lynx ~/.lgrep.html
    

    lf_lynx.pl は grep の出力をHTML形式に変換するフィルターです。次のような perl スクリプトを ~/bin/lf_lynx.pl で作成し、chmod 755 でパーミッションを実行可能にしておきます。

    #!/usr/bin/perl
    
    $a = `pwd`; chop($a); 
    $pwd = $a . '/';
    while (<>) {
            /^(.*?):(.*)/;
            $file=$1; $line=$2;
            if ($file =~ /\//) {
                    print "<a href=\"$file\">$file</a><br>\n$line<br><br>\n";
            } else {
                    print "<a href=\"$pwd$file\">$file</a><br>\n$line<br><br>\n";
            }
    }
    

    これで準備完了です。myhtml ディレクトリーに移動して、コマンドラインから lgrep keyword * と入力します。

    $ cd myhtml
    $ lgrep 文書 *

    grepで検索が行われた後、Lynxが起動してキーワード「文書」を含む行とそのファイルへのリンクを表示します。右矢印を押すと、キーワードを含むファイルに移動することができます。文書の量が膨大になると namazu のような全文検索専用のアプリケーションが必要になると思いますが、自分で入力した文書ぐらいならば grep を利用した簡単なスクリプトでも十分実用になります。

以上でLynxを使ってHTML文書を統合的に作成する方法を紹介しました。この方法を利用すればHTML文書だけでなく、いろいろな文書にリンクをはって情報を整理することができます。また、perlスクリプトや、C言語のソースなどをHTML文書を利用して上手に整理することができるでしょう。また、一般の情報であればほとんどHTML文書の編集だけで済みますから、もっとも効率的に文書情報の整理をすることができます。あとは、使う人のアイディア次第です。HTML文書を他人に情報を紹介するためだけのものにするのは勿体ない気がします。