#!/usr/local/bin/perl #!D:/Perl/bin/perl.exe # 過去ログのhtmlファイル作成 2002.11.29 作成:鷹の巣 # URL:http://sakaguch.com 電子メール:http://sakaguch.com/cgi/postmail/ より送信して下さい。 # ファイル名:PastList.pl # # 改版記録: # 2002.09.28 Rev.0.000 初版 # 2002.10.11 Rev.0.100 HTML 4.01 strictのhtmlファイルの文法に変更。 # 2002.11.08 Rev.0.101 XHTML 1.0 strictのhtmlファイルの文法に対応。 # 2002.11.21 Rev.0.102 XHTML 1.1のhtmlファイルの文法に対応。 # 2002.11.26 Rev.1.000 11月25日にKENT WEBさんより再配布の許可を得て、公開。 # 2002.11.29 Rev.1.001 スタイルシートのbodyから、font-size:12ptの指定を消去。 # 2002.02.26 Rev.1.002 スタイルシートのbodyの背景色を白に、行間を1.4emに変更。 $ver = 'Web Forum v3.3 - http://www.kent-web.com/ PastList.pl Rev.1.002(改造:鷹の巣)'; # # 1.用途 # # このPerlスクリプトは、KENT WEBさんの掲示板WEB FORUMの過去ログから、 # HTML 4.01 strict、XHTML 1.0 strict、XHTML 1.1用のhtmlファイルを生成するものです。 # ご投稿者によるご投稿内容のURIの書式が正しければ、 # Another HTML-lint gateway:http://openlab.ring.gr.jp/k16/htmllint/htmllint.html # で、100点満点が取れることを確認しています。 # 但し、HTMLの文法を忠実に守った為、過去ログの約12Kバイトからは、約1Mバイト以上の # HTMLファイルが生成されますので、ご注意願います。 # 従って、Webファイルの容量の制限のない自宅サーバー用と言えます。 # # 2.作成したhtmlファイルの表示例と特徴 # # 作成されるhtmlファイルの表示例は、以下のサイトに設置しています。 # http://sakaguch.com/PastBBS/0008/B004933.html # ブラウザを利用して、htmlファイルのタグも是非、ご覧願います。 # # ○利点:HTMLファイルの為、サーバーへの負荷が小さい。 # 検索エンジンに収集させることも出来る。 # ○欠点:過去ログのファイル容量が100倍以上に巨大化する。 # # 3.ご注意事項 # # このスクリプトに対するご質問や不具合がございましたら、電子メールで、 # webmaster@sakaguch.com まで、お寄せ下さい。 # また、「鷹の巣」の自宅サーバー掲示板 # http://sakaguch.com/cgi/bbs/ # にご投稿して頂いても結構です。 # ☆★☆KENT WEBさんとは、全く無関係ですから、KENT WEBさんへは、絶対にご質問しないで下さい。☆★☆ # # 4.著作権 # # このスクリプトで、鷹の巣が改造した箇所の著作権は、放棄していますが、 # このファイルは、下記のKENT WEBさんの掲示板WEB FORUM v3.3 (2002/08/01) #┌───────────────────────────────── #│ WEB FORUM v3.3 (2002/08/01) #│ Copyright(C) KENT WEB 2002 #│ webmaster@kent-web.com #│ http://www.kent-web.com/ #└───────────────────────────────── # のソースコードを流用していますので、再配布にあたります。 # 従って、KENT WEBさんのCGIスクリプト利用規定 # http://www.kent-web.com/pubc/kitei.html # に従って、再配布するものです。ご利用に当たっては、ご留意願います。 # # 5.設置例 # # かっこ内はパーミッション ※bbs以下のディレクトリの構成は、厳守すること。 # # public_html / index.html (ホームページ) # | # +-- bbs / wforum.cgi [755] 未使用。 # | PastList.pl [755] ※このスクリプトファイル自身。 # | wf_log.cgi [666] 未使用。 # | wf_admin.cgi [755] 未使用。 # | jcode.pl [644] 未使用。 # | fold.pl [644] ※このスクリプトファイルが使用。 # | pastno.dat [666] 未使用。 ... (過去ログ用) # | # +-- past [777] / 0001.cgi [666] ... (過去ログ) ※このスクリプトファイルが使用。 # | | styleL.css[644] ... (過去ログ用スタイルシート)※このスクリプトファイルより生成 # | | 0001.html[644] .............. (過去ログ目次用)※このスクリプトファイルより生成 # | +---------- 0001[644] / Bxxxxx.html [644] ... (過去ログ用)※このスクリプトファイルより生成 # | # +-- lock [777] / 未使用。 # # # 6.起動方法 # # PastList.plのあるディレクトリに移動し、コマンドラインから、perl PastList.plを実行します。 # プロバイダでは、CGIの実行パス下にhtmlファイルを作成出来ない場合が多いです。 # (作成出来ても、それをWebサーバーから、利用出来ない場合が多いです。) # 従って、ブラウザから、Webサーバーを通しての実行方法は、取り扱わないこととさせて頂きます。 # #============# # 基本設定 # #============# # 実行時のみ、コメント行にします。通常は、起動しない(されない)様にすること。!!! #exit; # htmlファイルを作成する過去ログの開始位置を設定 $start_count = "0001"; # 管理者名とメールアドレス $webmaster = '管理者名'; $mailaddress = 'webmaster@example.com'; # 掲示板へのリンク用URI # Webサーバーのドキュメントルートからのパスを指定することを推奨します。 $URIkeijiban = '/cgi/bbs/'; # タイトル/本文の文字タイプ $t_face = 'MS P Gothic'; # 本文の文字大きさ(ポイント数:スタイルシート) $pt = '1em'; $bgcolor = "#EEEEEE"; # 背景色 $text = "#004080"; # 文字色 #$text = "black"; # 文字色 # 引用部色変更 # 1) ここに色指定を行うと「引用部」を色変更します # 2) この機能を使用しない場合は何も記述しないで下さい ($refcolor="";) $refcolor = "#804000"; # リストに表示する「記事タイトル」の最大長(文字数:半角文字換算) $sub_length = 128; # URL自動リンク (0=no 1=yes) $autolink = 1; # ツリー部分の出力 (0=no 1=yes) $treeOut = 1; # 作成するHTMLファイルの書式バージョンの設定 # わからなければ、HTML 4.01 strict用を選択すること。 #$HTMLver = "XHTML 1.1"; # XHTML 1.1用 #$HTMLver = "XHTML 1.0 strict"; # XHTML 1.0 strict用 $HTMLver = "HTML 4.01 strict"; # HTML 4.01 strict用 # 作成するHTMLファイル上部に挿入するリンクやバナー # 先頭付近に必ず、適当な文字というリンクを必ず入れること!!! # の等の非推奨タグを使用したり、タグを大文字で書くと、 # Another HTML-lint gatewayの減点対象となりますので、ご注意願います。 # (あらかじめ、上記のサイトで$banner1部分のタグを試験されることを推奨します。) $banner1 = <<'SUB_MSG';
SUB_MSG #============# # 設定完了 # #============# # スタイルシートのファイル名 $stylefilename = "styleL.css"; # 過去ログのディレクトリ(最後は / で閉じる) $pastdir = './past/'; # ライブラリ取込み require './fold.pl'; #---------------------------------- # 主回路 #---------------------------------- # 著作権の表示 print "$ver $HTMLver\n"; # スタイルシートの作成 &make_style ("$pastdir$stylefilename"); # 上部に挿入するリンクやバナーのHTMLタグの置換 $banner1 = &TagRep ($banner1); if ($HTMLver eq "XHTML 1.1") { $banner1 =~ s/(|)//g; } else { $banner1 =~ s/(|)//g; } # 過去ログのHTML化 for ($past_count=$start_count ; $past_count<1000 ; $past_count++) { $count = sprintf("%04d",$past_count); $logfile = "$pastdir$count\.cgi"; if (!(-e "$logfile")) { last; } # $logfileファイルが存在しなければ、処理を中止する。 print "$logfile\n"; &main_loop ($count); } exit; #---------------------------------- # 過去ログ単位のHTMLファイルの出力 #---------------------------------- sub main_loop { $count = $_[0]; mkdir ("$pastdir$count","777"); # 後で、ディレクトリのパーミッションは、644に変更すること。 # ツリー単位のHTMLファイル名の検出 @oya = (); $logfile = "$pastdir$count\.cgi"; open(IN,"$logfile") || &error("Open Error : $logfile"); while ($msg"; } # ツリー内の表題部分を出力 $date = &get_time($t); # if ($smail ne "on") { $m = "Eメール:$email
$msg