追加説明書
汎用リスト生成プログラム - Listgen

■もくじ

この説明書では Listgen 用のデータベースファイルの作り方/定義ファイルのカスタマイズ方法を説明します。
正直言って難しいです。 トライ&エラーでゆっくりと覚えていって下さい…。
<初級編> <上級編>

■とりあえず編集だけ

CSVエディタを落としてきましたか?
とりあえず、リンク集を作ってみましょう。
雛形の link.csvをCSVエディタで開いてみましょう。

…。 むー。 表示されたそのままですね…。 どう説明しましょう…。

ともかく、既にある他のデータを参考にしながら適当にデータを埋め込んでみましょう。
説明がおざなりですいません(⌒ω⌒;

■データファイルの構造/その設計

カスタマイズする上で知っておいていただきたいのはデータファイルの構造です。 「Listgen」で扱うCSV形式のファイルは一行が以下の構造になっています。

フラグは自由に増やせます。 基本値はフラグの数が4になっています。
(定義ファイルの項目を参照のこと)
●基本構造
0列 区分 [固定] 8列 (自由)
1列 新着フラグ [固定] 9列 フラグ 0 [固定]
2列 名前 [半固定] 10列 フラグ 1 [固定]
3列 (自由) 11列 フラグ 2 [固定]
4列 (自由) 12列 フラグ 3 [固定]
5列 (自由) 13列 (自由)
6列 (自由) 14列 (自由)
7列 (自由) (自由)
    n列 (自由)
●(例)link.csv の論理構造
0列 区分 8列 コメント
1列 新着 9列 BBS有無
2列 HP作成者 10列 CG有無
3列 HP名 11列 Text有無
4列 HP URL 12列 Other有無
5列 バナーアドレス 13列 なし
6列 バナー幅 14列 なし
7列 バナー高さ なし
    n列 なし

2列目には名前を入れることが推奨されます。
なぜなら、敬称などの追加はこの部分にしか機能しないからです。
# もちろん、名前以外の用途に使っても構いません。
# サンプルのnew_log.csv(def)を参照下さい。

14番以降も自由に拡張できます。
但し、いろいろと制約があります。 それは後述。


☆もし、フラグの数を増やしたら…
例えば、フラグの数を7個にした場合、
(自由) 13列 フラグ 4 [固定]
(省略) (自由) 14列 フラグ 5 [固定]
8列 (自由) 15列 フラグ 6 [固定]
9列 フラグ 0 [固定] 16列 (自由)
10列 フラグ 1 [固定] (自由)
11列 フラグ 2 [固定] n列 (自由)
12列 フラグ 3 [固定]    
となります。
先程述べた「制限」とは、フラグの数を増やした分だけ自由に使える項目は後ろへ、後ろへとずれていくことです。
最初に良く考えてデータの構造を設計していないと、あとからフラグを追加したときにその分そのあとにあるデータを移動させねばならない羽目になります。
まあ、CSVエディタを使えばマウスで範囲指定してコピー→貼り付けなだけなんですが…。


☆逆に、フラグの数を減らした場合
フラグの数を2個にした場合
(自由) 10列 フラグ 1 [固定]
(省略) (自由) 11列 (自由)
8列 (自由) (自由)
9列 フラグ 0 [固定] n列 (自由)


■コメント行
「区分」の頭に"#"記号を付けると、その行はコメント行と見なされ、表示の対象とはならなくなります。
一時的に削除したい行があったり、メモを残しておきたい時などはコメントにしておくといいでしょう。

■定義ファイルのカスタマイズ

データ構造の設計が終わったら定義ファイルを作り、どういうパターンを表示させるか定義します。

定義ファイルの中身は、
  • 変数の設定
  • 実際に表示されるタグの設定
という流れになっています。


☆変数の設定
定義ファイルの中で設定できる特殊な変数があります。
Listgen では定義ファイルに書かれたこれらの変数を読みとって動作を決定したり、画面表示を変えたりしています。
●表示に関する変数●
$keisyou 名前の後に付ける敬称を指定します。 省略可。
$DoSearchHighlight 検索時、一致した文字列を強調表示するか。
1 にすると見つかった単語に<B>タグを付加します。
タグを付加すると問題のあるデータ(URLなど)を含む場合、0にしておいた方が無難でしょう。
User_HTML_Head HTMLヘッダを含めた、ページの見出し部分の指定をします。 この三つは

print<<"END_OF_TABLE"
 :
END_OF_TABLE

という形になっています。
: の部分を書き換えて下さい。
User_Tag データを埋め込むタグを指定します。
データは、この中の変数に埋め込まれてゆきます。
User_HTML_Foot 表一覧の最後に表示させるタグを指定します。
HTMLフッタ(</BODY></HTML>など)はListgenが自動的に挿入します。
●フラグに関する変数●
$flags フラグの数。 初期値は 4です。 省略不可。
この数を増やすときは、$flag_onの数も増やしてゆきます。
$new_on 新着フラグがonの時に表示されるタグ。 省略可。
$flag_on[n] フラグ 0 がonの時に表示されるタグ。 省略可。
●表示させるタグの中に埋め込む変数●
${parts[n]} データファイルの要素の一つを表します。
${new} 新着マークを表します。
新着フラグが 1 だと、「●フラグに関する変数●」の $new_on で指定したタグを埋め込みます。
${flag[n]} フラグマークの一つを表します。
それぞれ「●フラグに関する変数●」の $flag_on[n] に対応し、この変数がタグの中にあると $flag_on[n] で指定したタグを埋め込みます。


☆実際に表示させるタグの設定

先程サンプルとして取り上げた link.csv の中身は、 link.def の中身と以下のように対応しています。

0列 区分 ${class} (${parts[0]}) 7列 バナー高さ ${parts[7]}
1列 新着 ${new} (${parts[1]}) 8列 コメント ${parts[8]}
2列 HP作成者 ${parts[2]} 9列 BBS有無 ${flag[0]} (${parts[9]})
3列 HP名 ${parts[3]} 10列 CG有無 ${flag[1]} (${parts[10]})
4列 HP URL ${parts[4]} 11列 Text有無 ${flag[2]} (${parts[11]})
5列 バナーアドレス ${parts[5]} 12列 Other有無 ${flag[3]} (${parts[12]})
6列 バナー幅 ${parts[6]}      

実際には、 link.def の中でこの様に埋め込んで行きます。
(太字が変数部分)
<!--===[[[[[ ${parts[2]} / ${parts[3]} ]]]]]===-->
<CENTER><TABLE border=0 width=600 cellpadding=1 cellspacing=2>
  <TR>
    <TD colspan=2 align=right>${new}${flag[0]}${flag[1]}${flag[2]}${flag[3]}</TD>
  </TR>
  <TR>
    <TH bgcolor=#ffd7c6 width=99%><FONT size=+1 color=#692121><B>${parts[2]}</B></FONT></TH>
    <TD rowspan=2 bgcolor=#ffd2aa align=center valign=middle width=1%><A href=${parts[4]} target=_top><IMG src=${parts[5]} width=${parts[6]} height=${parts[7]} border=0 alt="${parts[3]}"></A></TD>
  </TR>
  <TR>
    <TH bgcolor=#ffd7c6><A href="${parts[4]}" target=_top><FONT size=+1 color=#692121>${parts[3]}</FONT></A></TH>
  </TR>
  <TR>
    <TD colspan=2 bgcolor=#ffebc6><FONT color=#692121>${parts[8]}</FONT></TD>
  </TR>
</TABLE></CENTER><BR>
ここで注意点。
  • 「新着マーク」を表す変数は ${new}
  • 「フラグマーク」を表す変数は ${flag[n]} (nは任意の整数)
▼画面上にはこう表示されるでしょう。
${new}${flag[0]}${flag[1]}${flag[2]}${flag[3]}
${parts[2]} \"${parts[3]}\"
${parts[3]}
${parts[8]}



そして、こんなデータがあった場合

0列 区分 (${parts[0]}) test 7列 バナー高さ (${parts[7]}) 40
1列 新着 (${parts[1]}) 1 8列 コメント (${parts[8]}) テストデータ
2列 HP作成者 (${parts[2]}) 不可思議絵の具 9列 BBS有無 (${parts[9]}) 1
3列 HP名 (${parts[3]}) ふかふか屋 10列 CG有無 (${parts[10]}) 1
4列 HP URL (${parts[4]}) http://www.fang.or.jp/~fuka/ 11列 Text有無 (${parts[11]}) 1
5列 バナーアドレス (${parts[5]}) http://www.fang.or.jp/~fuka/image/banner/fuka_bnr.jpg 12列 Other有無 (${parts[12]}) 1
6列 バナー幅 (${parts[6]}) 200        


こんな風に表示されます。
[new!][BBS][CG][Text][Other]
不可思議絵の具さん ふかふか屋
ふかふか屋
テストデータ

この説明書自体のソースを表示してみると良いでしょう。

■ツール説明書

■ネットスケープのブックマークをListgen形式に変換 (b2c.pl)

データベースを作るのは本当に大変な作業です。
Netscape Navigator(Communicator)をお使いの方に限り、変換ツールを用意しました。
Internet Explorer等の他のブラウザををお使いの方でも、他の変換ツールを使ってネスケ形式に変換したあとならこのツールを使うことが出来るかも知れません。

なお、このコマンドはシェル上でのみ使えますが、シェルを使えないプロバイダの方でもご自分のパソコンにperlをインストールすれば自機を使って変換できます。
Windows用Perlは http://www.activestate.com/ で入手できます。


  1. プログラムの一行目のperlへのパスを自分のプロバイダ向けに変更する

  2. パーミッションを設定する
    人畜無害ですが、念のため(700 -rwx------)にしておきましょう。
    chmod 700 b2c.pl

  3. b2c.plの置いてあるディレクトリと同じディレクトリにbookmark.htmをアップロードしましょう。

  4. 用意が出来たら実行です。 b2c.plのあるディレクトリに移動して
    ./b2c.pl bookmark.htm > temp.csv
    を実行します。

  5. 同じディレクトリに temp.csv というファイルが出来ていたら成功です。
     あとはそのファイルを自分のディスクにダウンロードして煮るなり焼くなりして下さい。

©1999,2000 不可思議絵の具
(http://www.fang.or.jp/~fuka/)