はじめに
- これはWEB日記を作成する perl5 スクリプトです。
- 日記はHTMLファイルで出力するので、CGIの負荷が軽くてすみます。
- 過去現在未来好きな時に好きな日の日記を書くことが出来ます。
- 簡単な画像アップロード機能付で、絵日記としても使えます。
- 月ごとに表示色を変更することが出来ます。
- HTML出力部分のスクリプトファイルを差し替えることによって、 スタイルシート使用、種別アイコン表示など、 日記デザインが変更できます。
使い方
ファイルのダウンロードと解凍
プログラムのアーカイブファイルをダウンロードします。 lhasa 等 lha 形式のアーカイブファイルが解凍できるツールでファイルを解凍します。
解凍ツールによってはサイズが0のファイルを解凍しないタイプのものがあるようです。 その場合、設定ファイルとデータファイルが見つからないかもしれませんが、 エディタなどで中身が空のファイルを各ファイルの名前で作成すればOKです。
スクリプトファイルのカスタマイズ
設定のほとんどは WEB 上で行えるようになっています。 もし、ご利用のプロバイダでの perl パスが /usr/local/bin/perl ではない場合のみ、 diary.cgi と、dairycng.cgi の先頭部分、
#!/usr/local/bin/perl
をプロバイダのマニュアルのとおりのパスに変更して保存してください。
ファイルの転送
ftp ソフトを使って、必要なファイルをすべて転送します。 (この説明書は転送する必要がありません)
下の設置例を参考に、 CGIが作成するHTMLを保存するディレクトリやデータを置くディレクトリを作成し、 ファイルとディレクトリの属性を変更してください。
スタイルシート内で背景などを使った場合は、 それらの画像データも忘れず転送してください。 サーバーによって置き場所などが決められている場合は、 指定の場所(cgi-bin など)にファイルを置くようにしてください。
CGIの設置例(デフォルトのディレクトリ構成)
この例のとおりに設置した場合、 基本設定でディレクトリ指定を変更する必要はほとんどありません。
■ public_html/
+■ cgi-bin/ (705) - CGI設置ディレクトリ
|+◆ diary.cgi (705) - 日記CGI
|+◆ diary.css (604) - CGI用スタイルシート
|+◆ jcode.pl (604) - 日本語処理ライブラリ
|+◆ diamake.pl (604) - 日記設定スクリプト
|+◆ diaconf.pl (604) - 日記作成スクリプト
|+◆ di-html.pl (604) - HTML出力スクリプト
|+◆ di-html.col (604) - 色設定ファイル
|+◆ chkfmt.pl (604) - 画像判別ライブラリ
|+◆ parslib.cgi (604) - 入力解析ライブラリ
|+◆ stdlib.cgi (604) - 汎用ライブラリ
|+■ dat/ (707) - データ保存ディレクトリ
||+◆ diary.ini (606) - 設定ファイル
||+◆ diary.cat (606) - 種別ファイル
+■ diary/ (707) - 日記HTMLディレクトリ
|+■ img/ (707) - データ保存ディレクトリ
|+■ icon/ (705) - 種別アイコンディレクトリ
||+◆ *.gif (604) - 種別アイコン画像
|+■ style/ (705) - 色設定ファイル用ディレクトリ
||+◆ *.jpg (604) - 背景用画像
|
サーバーによっては、707を705に、606を604にするように推奨している所もあります。 サーバーのCGI設置に関するマニュアルを参考に属性を変更してください。
CGIのメニュー
ログイン
設置したCGIをブラウザから呼び出すと、 パスワード入力画面がでます。 初期設定を変更する前のパスワードはpasswdです。
初期設定
変更できるパラメータに関しては、設定メニューの説明を参照してください。 通常は基本設定メニューの項目だけを変更すれば問題ありません。
新規データ
新しい日記を作成します。
日記の日付は今日の日付がデフォルトで設定されていますが、 ドロップダウンリストで変更可能です。
設定したいカテゴリがドロップダウンリストにない場合は、 新規にカテゴリを追加できます。カテゴリキーには半角英数字のみ入力してください。
アップロード出来る画像ファイルはJPEG、GIF、PNG画像ファイルだけです。 一部のブラウザでは、 日本語交じりの名前がついたファイルはアップロードに失敗する場合があります。
データ編集
編集したい月を選択すると、その月の日記一覧が表示されます。
一覧の日付行にある新規ボタンを押すと、その日の日記を新規に追加できます。
各日記の行にある編集ボタンを押すと、その日記の修正が出来ます。 削除ボタンを押すと問答無用でその日記が削除されます。
スタイル設定では、日記の色設定を変更できます。
HTML出力スクリプト
個人的事情により、デザインの違う日記を複数設置したかったので、 データ登録部分とHTML出力部分を別のスクリプトにしました。 「高度な設定」の日記出力ライブラリという項目で変更可能になってますので、 添付の出力デザインがいまいちだなあというばあいは出力デザインのスクリプトファイルを改造した後、 日記CGIと同じディレクトリにアップロードして、この項目を変更してみてください。
Q&A
圧縮ファイルを解凍したら、diary.ini が見つかりません
一部の解凍ソフトでは中身のないファイルを解凍してくれないことがあります。
別の解凍ソフトで試してみるか、 エディタで空のファイルを作成して diary.ini という名前で保存して使ってください。
@nifty で設置したのですが、CGIがうまく動きません
設置例の public_html/cgi-bin を cgi-bin に、 public_html/diary をhomepage/diary に置き換えてファイルをアップロードしてください。
高度な設定メニューのディレクトリ設定を以下のように変更してください。
HTMLディレクトリ: ../homepage/diary/
画像UPディレクトリ: ../homepage/diary/img/
CGIURL: http://hpcgi?.nifty.com/お名前/
HTMLURL: http://homepage?nifty.com/お名前/diary/
画像UPURL: http://homepage?nifty.com/お名前/diary/img/
「hpcgi?」や「homepage?」の部分と「お名前」の部分は、 自分のホームページURLに合わせて指定してください。
添付のHTML出力スクリプトや別パッケージの出力スクリプトを全部試して見ましたが、 デザインがまったく気に入りません
一番希望のデザインに近そうな出力をするスクリプトを改造してみると幸せになれます。 以前のバージョンよりも、HTML出力スクリプトを単純にしてみました。 基本はHTMLのタグを書き換えるだけなので、 設置されるサイトのトータルデザインに合うようにガリガリ改造してくださるとうれしいです。
根本的にデザインがすさまじく気に入らないのですが、 スクリプトを改造する知識がありません。
諦めてください。もしくは、CGI改造知識のあるお友達に頼んでみるとか。
その他
いくつかの注意事項
このソフトはフリーソフトです。 著作権は放棄しませんが、 配布、改造等はダウンロードした方が自由に行ってかまいません。 改造したものについての公開も制限しません。 これより機能のすばらしい改造品ができた場合は教えて欲しいですが、強制しません。
このスクリプトは、以下の環境で動作を確認しました。 他の環境(とくにサーバーが WinNT な所とか)で動くかどうか、 まるで自信がありません。
一応、問題が出ないように作成したつもりですが、 このスクリプトを使ってデータが壊れた、 サーバーがおかしくなった等の問題が起きても、 責任が取れません。ごめんなさい。
なるべく簡単に操作できるように作成したつもりですが、 このCGIを使うには、 最低限、ホームページ作成とFTPソフトを使ったファイルアップロード、 サーバーへのCGIの設置、くらいの知識が必要かと思われます。
デザインセンスについては何も言わないでください(涙)。
作者の言語能力にかなりの問題があるため、 この説明書には多大な不備があると思います。 どうか行間を読んで意図する所を汲み取ってください。よろしくです。
このCGIに関する要望・苦情は受け付けますが、 それらが新バージョンに反映されるかどうかはわかりません。
履歴
- 2001.10.6 Ver0.01
- いいかげん、エディタでぺこぺこタグを打つのにつかれたので、 CGIでの出力を考える。
- 既存の日記CGIを自分用に改造するのが面倒なので、自作に走る。
- 2001.10.13 Ver0.02
- 設置したい2ヶ所のサイトのうち、片方にはドリパスユーザーがよく来るので、 HTML出力部分を切り出し、 スタイルシートを使わない出力をするスクリプトを追加。
- そもそも、HTMLデザイン変更はスキンファイル形式にすりゃ同じような動作するスクリプトを複数作らなくてもいいことに気が付いたが、 スキンファイルの仕様を考えパーサーをひねくりだすのは同じような動作をするスクリプトを作るより面倒なので、気が付かなかったことにする。
- 2001.10.31 Ver0.03
- だいぶ基本的な部分が完成したので、自分のサイトの日記をつけ始めるが、 急に絵日記をつけたくなったので画像アップロード機能を追加。
- 2001.11.03 Ver0.04
- @niftyに設置してみる。
- 2001.11.08 Ver0.05
- せっかく色変更機能をつけたんだから、と、4種類ほど色設定を考えてみる。
- 調子に乗って、使いもしないのにフレーム表示版をひねくりだす。
- 2001.11.15 Ver0.06
- ほぼ完成したので、マニュアルを書く。
- 2001.11.16 Ver1.00
- Another HTML-lint で出力HTMLチェックをする。
- バージョンをキリ良くして公開。
- 2001.11.18 Ver1.01
- アップロードした画像ファイルのパーミッション変更時にミスしてました。
- 2001.11.28 Ver1.02
- 日記の削除をするとごみデータを増殖させる不具合を修正。 ついでに削除ボタンを編集ボタンの横に置くのをやめてみた。
- 2001.12.04 Ver1.03
- 設定でパスワードを変更するとその後パスワード入力エラーが出る不具合と、 タイトルを変更しても変更されない不具合を修正しました。 前に他のCGIでやって指摘された間違いをなぜまた繰り返しましたか>自分(滝汗)
- 2001.12.21 Ver1.04
- スタイルシート対応のHTML出力スクリプトを使うと、 アップロードした画像を表示しない不具合を修正。 ・・・自分で使わないとだめだなあ。
- 2002.1.26 Ver1.05
- タイトルに参考URLのリンクを貼れるようにした。
- 2002.2.8 Ver1.06
- タブコードを入れると勝手に改行にされるのをやめてみる。 < とか入力した日記を編集しようとすると、 <に展開されてるのを阻止してみる。
- 2002.3.18 Ver1.07
- CGI ファイルの構成をいじくってみた。あんま意味ないな。
- データ編集での年月選択画面をちょっと変更。 ついでに、今月が一桁の月だとデフォルトの選択がつかない不具合修正。
- タブコードの置き換えを実体参照からスペースに変えてみる。
- タブコード周りでいろいろやってたら、最新の日記データが壊れたので、 月ごとのデータから最新のデータを作り直すオプションをくっつける。 いまのところ、問題ないようだけど。
- 2002.4.1 Ver1.08
- カンマを実体参照に変更した後さらに&を実体参照に変えてたために、 カンマが&#44;に変化してしまってたのを修正。
- 2002.5.27 Ver1.09
- 一回画像をつけた項目の修正時、 画像を削除するオプションを選択すると画像ファイルそのものはきえるけれど、 データの中にファイル名が残る不具合を修正。
- データ登録時の内容プレビューの見せ方を修正してみたり。
- 2002.6.11 Ver1.10
- 1.07 で吐き出した日記の「管理用」リンクが、 ちゃんとCGIにリンクされてないことにいまさら気が付いて修正。 なんでいままで気が付かなかったかというと、 私は日記CGIの URL をお気に入りに入れてたので、 管理用リンクなんか使わなかったから〜。………ごめんなさい。
- 2002.07.31 Ver1.11
- またもやめちゃくちゃ作成部分のスクリプトいじりました。 スクリプトを改造してる人は以前のバージョンで問題がないようなら、 アップデートしなくてもよいです。たぶん。 改造推奨とか言いつつ、改造してる人のことを考えないいじり方。
- 更新情報 CGI のように AutoLink 関数を Perlメモ由来のルーチンにしてみた。
- 本文中出てくるリンクの target 指定が変えられるように設定項目追加。
- 日記編集リストで、ある年の日記が4で割れる月数ないと一覧の表示が変になるのを修正。
- HTML 出力スクリプトから極力同じ動作をしてる部分を diamake.pl に移動。 多少は前より改造しやすくなったと思う。
- 標準添付のHTML出力スクリプトを di-html.pl のみにして、 あとは別パッケージにします。 管理が面倒になるけど、 気分で追加しやすいし、サンプルもつけられるし(滝汗
- いままで title 属性だけで表示してた各日付のアンカーに href もつけてみた。
- 2002.08.08 Ver1.12
- 日記データ編集時、近況データのほうだけ、 編集前のデータに編集後のデータが上書きされず、 編集後のデータが新たに追加される場合がある不具合を修正。
- 一日一データだと気がつかないんだよね、この不具合(泣
- 2002.08.21 Ver1.13
-
メールで指摘された不具合を修正。不具合は以下のとおり。
- 高度な設定で「近況(最新の日記)ページ」のファイル名を変更して設定ボタンを押すと、 エラー表示が出力される。 ロボットよけの項目を変更しても設定に反映されない 高度な設定で「近況(最新の日記)ページ」のファイル名を変更しても、 管理メニューの下部にある「日記に戻る」のリンクがデフォルトのまま。
- 現バージョンで、かなり昔の日付で新規データを登録すると、 近況ページにそのデータが表示される場合があります。 もし近況ページに変な日付のデータが入って困ったときは、 データ編集メニューを選んだ後の月選択ページにある reindex ボタンを押してください。 この不具合は次バージョンで直す予定です。 1.12 で修正した部分でなにか間違ったことをしてるのかもしれないんですが、 どこが悪いのかまだ判らないので追試中です。
-
メールで指摘された不具合を修正。不具合は以下のとおり。
- 2002.10.04 Ver1.14
- 入力パラメータ解析部分を全部書き換え。他CGIでも使う部分は別ファイルに抜き出し。
- 改行前だか直後だかに半角ハイフンがあると改行が無視される不具合を修正。
- 日記本文が空の時はエラーを出すように変更。
- 昔の日付で新規データを追加しても近況ページにまぎれこまないように修正。
- 以上、1ヶ月自分で使ってみて問題ないので、たぶん大丈夫だと・・・。
- 2003.01.09 Ver1.15
- ファイルフォーマットチェック部分を独立したファイルに。
- 今度こそ「昔(略」を修正したと思う。
- 2004.02.10 Ver1.16
- ありもしないふぁいるを require してたのを修正。
- ファイルチェック部分を外部に出したときに付け加えられたバグを修正。
- 以上2つ、指摘のあったところだけチェックしました。が、全体的にチェック不足です。 なんか変だなあと思ったら cgi のあるディレクトリに debug.txt というファイル(中身は問いません。名前が重要なので)をアップロードしてください。デバッグモードになります。CGI の不具合でエラーが起きているときは、エラーメッセージが表示されます。
- 2004.10.20 Ver1.17
- 設定ファイルを読み書きするサブルーチンが diary.cgiとstdlib.cgi両方にあったせいで、 修正しきれてなかった welcome の改行がスペースに化けるバグを修正。
- parslibを新しくしてみた。不具合が出たら申し訳ない。
- 2006.06.21 Ver1.18
- 最後に変更した日付のほかに最初に書いた日付も保存してみる。 今までのデータはもうどうしようもないけど。
- parslibを新しくしてみた。不具合が出たら申し訳ない。
- 2006.10.11 Ver1.18m
- diary.cgi が作成したデータを MovableType のインポート形式に変更する CGI を添付しました。dat2mt.cgi 単体で動きます。他の blog システムに鞍替えしたい方はどうぞ。
- 使い方は CGI スクリプトのソースに書いてあります。
- 一応、自分で使ってみて正常にインポートできたのを確認していますが、例によってすべての環境で正常に動作することは保障できません。