============================================================================== Web 日記帳 CGI「さくら」 (C)雷獣王GRIFFON(griffon@gwits.net) ============================================================================== ■概要 Web ベースの日記帳です. ・FTP が使えなくても日記が書けるので,外出先でブラウザさえ有れば日記の 更新が出来ます. ・書き込み鍵で書き込みを制限できるので,第三者による書き込みは行えませ ん. ・過去日記は表示している日記から逆順・昇順で見て行くことが出来るほか, カレンダーからのダイレクトジャンプも可能です. ・ほぼ全ての HTML タグをサポート,というよりは HTML タグのエンコードを していないので,日記内で書いた HTML タグは全て有効化されます. ・ターミナルベースで書くことも出来るので,メモ間隔で日記を書くことも可 能です. ■注意!! 日記ログのフォーマットが変更になり,Rev-1.x.x との互換性がありません. 付属の convert.cgi を使ってブラウザベースもしくはターミナルベースで旧 ログファイルを新ログファイルに変換してください. 変換するためのディレクトリは誤変換を防ぐためにも必ず新規ディレクトリを 使用してください. 変換方法は,まず旧ログファイルを適当なディレクトリにコピーします. (例) log_new そのログディレクトリはパーミッションを 777 にしておいてください. ディレクトリには convert.cgi をコピーし,パーミッションを 755 に設定し てください. 次に,ターミナルベースの場合は % perl convert.cgi start でディレクトリに存在する旧ログファイルを一括コンバートします. ブラウザベースの場合は下記のように行います. http://hogehoge.foo.bar/~username/nikki/log/convert.cgi?start 誤変換を防ぐために,どちらも小文字の「start」という文字列を与えないと 変換を行いません. 変換対象のファイル名は,初期状態では $logfile_mask = "^.*\\.log\$"; つまり *.log になっていますので,同ディレクトリ内には変換対象でないフ ァイルの拡張子は .log にしておかないでください. ※変換をする場合は,今までの日記ログと変換スクリプトのみを適当なディレ クトリにコピーしておき,変換作業を行った後にそのディレクトリをさくら 日記帳のログディレクトリとして使用すると良いでしょう. 作業が完了したら,旧ディレクトリはリネームして放置するナリばっさり削除 するナリ圧縮してバックアップするナリしてください. その後に先ほど使用したディレクトリをさくら日記帳のログディレクトリとし て使用できるように,ディレクトリ名を変更しておきます. 変換した後の旧ログファイルは,動作確認が終了すれば破棄していただいてか まいません. ■Rev-1.x.x からの主な変更点 ・ログを月別ログから日別ログに変更. ・ログフォーマットを大幅に変更 (ログコンバーター別途用意済み) ・過去日記閲覧方法を変更 ・日記 HTML に表示される日付はファイル名より取得 ・日記 HTML に表示される曜日はファイル名よりツェラーの公式で自動取得 ・日記 HTML に表示される時刻は日別日記ログの更新時刻より取得 ■設置方法 config.pl を自分の環境に合わせて設定します. 必要であれば *.cgi の Perl パスなどを自分の環境に合わせます. (通常,*.cgi は Perl パス以外の設定は必要有りません) password ファイルは makepassword.cgi で生成した暗号化文字列を記述して から鯖に転送してください. password ファイル内に文字列のみを 1行で記述するだけです. 余分なスペース文字などが入らないように気を付けてください. 既存の password.cgi は不要ですので削除してください. *.cgi を ASCII モードで鯖に転送し,パーミッションを 755 にしてください. *.pl を ASCII モードで鯖に転送し,パーミッションを 644 にしてください. password を ASCII モードで鯖に転送し,パーミッションを 644 にしてくだ さい. *.txt を ASCII モードで鯖に転送し,パーミッションを 666 にしてください. *.gif を BINARY モードで鯖に転送し,パーミッションを 644 にしてくださ い. lock,log ディレクトリを作成し,パーミッションを 777 にしてください. ■ディレクトリ構成とパーミッション パーミッションの指定がないものはアップロード時のデフォルトでかまいませ ん. sakura/ 「さくら」格納ディレクトリ (ディレクトリ名は自由です) | +-- sakura.cgi 本体 (755) +-- makepassword.cgi 暗号化パスワード文字列生成ツール (755) +-- sakura.ini 設定記憶ファイル (666) +-- config.pl 固定設定スクリプト (644) +-- count.txt カウンタファイル (666) +-- lastsave.txt 最終書き込みログファイル (666) +-- namelist.txt 単語変換ファイル (666) +-- referer.txt リファら記録ファイル (666) +-- index.html 日記の HTML 出力用ファイル (666) +-- password 管理者パスワード格納ファイル(暗号化済み) (644) +-- lock/ ロックファイル用ディレクトリ (777) +-- log/ 日別ログディレクトリ (777) +-- YYYYMMDD 日別ログ (666) ■お天気アイコン アイコンは各自で自作してもらってかまいません. その際,画像サイズは自由ですが,GIF 型式でファイル名を変更しないでくだ さい. Perl がわかる方はそれ以上に自由に出来ます. お天気アイコンは以下のようなファイル名のアイコンを CGI と同じディレク トリに置いてください. アイコンを使用する設定でアイコンファイルが見つからない場合は,お天気フ ィールドに記述されている文字列がそのまま表示されます. また,エディタなどで直接日記ログファイルを編集する場合,下記の漢字文字 列を使用することで,各お天気アイコンに置換されます. なお,エディタにて天気を漢字で記述した場合,ブラウザによる編集を行う場 合は天気のチェックボックスには反映されません. 晴れ:hare.gif 曇り:kumo.gif 雨 :ame.gif 雪 :yuki.gif 雷 :thunder.gif 台風:taifuu.gif ■使い方 ・パスワードについて 付属の makepassword.cgi で暗号化文字列を取得後,password ファ イル内に 1行で記述してください. 改行はあってもなくてもかまいません. ・新規書き込み 一番下もしくは上にある [新規] リンクをクリックしてください. 書き込みを実行するときに書き込み鍵を入力して Submit ボタンを押 します. ・編集 各記事のタイトルフィールドにある EDIT ボタンを押してください. 書き込みを実行するときに書き込み鍵を入力して Submit ボタンを押 します. ・削除 一番下もしくは上にある [削除] リンクをクリックしてください. すると削除一覧カレンダーが出るので,その中から削除したい日をク リックしてください. 「下記の日記を削除しますか?」と出てきたら,その下にある 1行テ キストボックスに書き込み鍵を入力し,「削除」ボタンを押します. 削除は物理削除ではなく,日別日記ログに拡張子 .del が付く形で削 除されます. ・管理者設定 一番下もしくは上にあるテキストボックスに書き込み鍵を記述し, SUBMIT ボタンを押してください. ■特殊機能 ○過去日記参照時のリバース表示 過去日記を新しい順に読んでいくと,ネタばれや話のつじつまが合わ ないなどで古い順に読んでいくと思われますが,それを簡単にするた めに,過去日記はリバース表示されるようにすることも出来ます. リバースされるのはさくら日記帳から過去日記参照用フォームで呼び 出した場合,もしくは GET オプションで oldlog_reverse=1 とした 場合のみです. 例) http://www.hoge.jp/nikki/sakura.cgi?target=20020927&oldlog_ reverse=1 ○日記レス参照用自動リンク作成 日記レスをする場合,ただ単に日記の URL に対してリンクを張られ るだけではどの日記に対してのレスなのかがわかりにくい場合があり ます. その場合, タグを使うことでさくら日記帳に該当日記への リンクを張って貰うとわかりやすいのですが,日記を書く本人はタグ が長くなるので面倒くさくなり,またリンクを張る側にしてみれば, ソースをいちいち見なくてはならないため非常に面倒なことになりま す. そんな日記レスを「張られる」のをサポートするための特殊タグを使 うことが出来ます. 文中に <*> を入れておくと,CGI で自動的に * というリンクを埋め込みま す. これでリンクを張る側は,ブラウザ上で 右クリック→ショートカッ トのコピー でリンクするためのアドレスをコピーすることが出来ま す. 通し番号と日付は自動割り当てするので,日記を書く本人の負担はほ とんどなくなります. 記述例)