■ 日記システム "GNS"
■ V2.20 Copyright 1998,1999,2000 GORRY.
■ http://GORRY.hauN.org/gns/
■ mailto: gorry@hauN.org
■ 1. ファイル構成
説明に"@"がついているものは、GNSが作成するファイルです。
説明に"*"がついているものは、ユーザーが作成するファイルです。
droot/
+ 1998/ @* 1998年マスタディレクトリ
| + 1213.html @* 1998/12/13のマスタ
| + 1214.html @* 1998/12/14のマスタ
|
+ gns/
| + tmp/ テンポラリファイル出力ディレクトリ
| | + %tmp*.out @ 更新用一時ファイル
| | + %back.out @ HTTP更新処理時のマスタのバックアップファイル
| | + test.html @ テスト表示用ファイル
| | + cgierr.log * CGI実行時ログ出力先
| | + recvmail.log * メール更新時ログ出力先
| + keep/ 保存ファイル出力ディレクトリ
| | + 10.html ダイジェストヘッダファイル
| | + 11.html ダイジェスト先頭メモファイル
| | + 20.html ダイジェスト末尾メモファイル
| | + 21.html ダイジェストフッタファイル
| | + 30.html ベースヘッダファイル
| | + 40.html ベースフッタファイル
| | + 97.html 引数置換データベース
| | + 98.html アイテムファイル
| | + 99.html URI置換データベースファイル
| | + lastupload @ mkd.awkに与えられた最新日付の記録ファイル
| | + upload.pass @* HTTP更新用パスワードファイル
| + index.html トップページ
| + index.shtml HTTP更新用トップページ
| + jcode.pl 漢字コード変換ライブラリ
| + config.awk * コンフィグレーションスクリプト(AWK)
| + config.ph * コンフィグレーションスクリプト(Perl)
| + mkd.awk ダイジェスト・ベースファイル作成スクリプト
| + mkpasswd.html パスワード登録フォーム
| + mkpasswd.cgi パスワード登録フォーム処理スクリプト
| + mkup.awk HTTP更新用ページ作成スクリプト
| + mkup.html HTTP更新用ページHTML
| + postmail.awk 更新通知メール発信スクリプト
| + recvmail.awk 更新通知メール受信処理スクリプト
| + recvmail.sh recvmail.awk起動シェルスクリプト
| + readme.txt 当ファイル
| + upload.cgi HTTP更新処理スクリプト
| + update.log GNS変更履歴
|
+ digestdiary.html @ 最新日記ファイル
+ 199812b.html @ ベース日記ファイル
■ 2. アップデートの方法
1. droot/gns/keep/*を旧ディレクトリから新ディレクトリに移します。
2. droot/にある日記マスタを旧ディレクトリから新ディレクトリに移します。
3. 旧droot/gns/config.awkをもとに、新droot/gns/config.awkを修正します。
ローカルで使用している人はここまでです。
4. 旧droot/gns/config.phをもとに、新droot/gns/config.phを修正します。
HTTPサーバにインストールしている人はここまでです。
5. メール更新をしている人は、旧droot/gns/recvmail.shをもとに、
新droot/gns/recvmail.shを修正します。
6. メール更新通知をしている人は、旧droot/gns/postmail.shをもとに、
新droot/gns/postmail.shを修正します。
7. それ以上の改造を行っている人は、各自対処してください。
■ 3. ローカルでの使用方法
0. このシステムの実行にはnkfと日本語対応awkが必要です。作者はWin32S
環境でmawkを使用しています。
1. 適当なディレクトリ(以後droot)に展開します。
# tar xvzfp gns-?.??.tar.gz
gns-?.??ディレクトリ(以後gns)が作られ、以下に展開が行なわれます。
2. droot/gns/config.phとdroot/gns/config.awkを、使用環境に合わせて
設定します。
3. drootに1998(1998年のとき)ディレクトリを作成します。
4. droot/1998に0102.html(1月2日のとき)ファイルとして日記マスタを
作成します。
5. droot/gnsディレクトリ上で以下のように実行します(1998年1月2日の
日記作成時)。
> mkd.bat 1998 1 2 (Windows)
> ./mkd.sh 1998 1 2 (UNIX)
6. droot/に199812b.htmlとdigestdiary.htmlファイルが作成されます。
7. 6.で作られたファイルをHTTPサーバにputします。
■ 4. HTTPサーバにインストールしての使用方法
0. このシステムの実行には日本語対応awk・perl4/5とCGI・SSIが使用可能な
HTTPサーバが必要です。作者はFreeBSD3.2Rにgawk3.0.3, perl5.005.03,
apache1.3を入れて使用しています。
1. 適当なディレクトリ(以後droot)に展開します。
# tar xvzfp gns-?.??.tar.gz
gns-?.??ディレクトリ(以後gns)が作られ、以下に展開が行なわれます。
2. droot/gns/config.phとdroot/gns/config.awkを、使用環境に合わせて
設定します。
3. droot/gns/*.cgiのpermissionにo+xを与えてください。
4. droot・droot/gns/tmp・droot/gns/keepのpermissionにo+wxを与えてください。
5. droot/gns/keep/*のpermissionにo+wを与えてください。
6. droot/gns/に何らかのアクセス制御をかけたほうがよろしいかと思います。
7. HTTPサーバへ接続し、droot/gns/を開きます。
何かエラーがあれば、droot/gns/tmp/cgierr.logに出力されます。
8. 「Check Path」を選び、Pathの設定が正しいかどうかを確認します。
9. 「Register Password」を選び、パスワードを登録します。
パスワードの再登録は、keep/update.passを削除してから再度これを
選んで登録することで行ないます。
10. [Write Diary]を選び、「GNS UPLOAD FORM」という日記更新画面にします。
11. 開いた画面に日記マスタ内容と日付・パスワードを与え、"WRITE"を選んで
"OK"を押します。
12. droot/に199812b.htmlとdigestdiary.htmlファイルが作成されます。
■ 5. 設定ファイル
droot/gns/keep/??.htmlは、ユーザーが自由に変更可能です。
GNS UPLOAD FORMからは、YEARに「10〜99」、MONTH・DATEを"99"にする
(あるいは該当のボタンを押す)ことで参照・更新が行なえます。
・10.html
日記ダイジェストファイルの先頭部に与える固定内容を設定します。
・11.html
日記ダイジェストファイルの先頭部に与える「メモ書き」を設定します。
予定表の表示などに使用すると便利です。
・20.html
日記ダイジェストファイルの末尾部に与える「メモ書き」を設定します。
予定表の表示などに使用すると便利です。
・21.html
日記ダイジェストファイルの末尾部に与える固定内容を設定します。
・30.html
日記ベースファイルの末尾部に与える固定内容を設定します。
・40.html
日記ベースファイルの末尾部に与える固定内容を設定します。
・98.html
引数置換データベース内容を設定します。
・98.html
曜日・タイトル・段落に使用する文字を設定します。
1行目から順に「日月火水木金土」・タイトル・段落・後書き開始・後書き
終了となります。
・99.html
URI置換データベース内容を設定します。
■ 6. 簡易タグ機能について
GNSマスタファイルには、段落を正しく簡単に記述するための「GNSタグ文字列」を
与えることができます。
GNSタグはすべて"@"で始まります。GNSタグでない"@"をマスタファイルに書く
場合は、"@"という文字列を"@"の代わりに記述してください。
・@weather [天気]
その日の天気を記述します。
・@topic [トピック]
その日のトピックを記述します。
・@title [タイトル]
タイトル(大きな区切り)を設けます。
・@foot [後書き]
後書きを設けます。
・@s
HREFタグの付いた段落を設けます。段落は@title、@close、あるいは他の段落を
設けることにより自動的に閉じられます。
・@s1・@s2
@sと同じですが、画像やテーブルを段落の右側に配置したいときに"@s2"とペア
で使用します。
@s1
@s2
本文
となります。
・@p
HREFタグのない段落を設けます。
・@qcode
プログラムコードを書くための段落を設けます。
・@q
引用を書くための段落を設けます。
・@ul
による段落を設けます。2段以上のネストを行なう場合は、明示的に
HTMLタグを使用してください。
・@ol
による段落を設けます。2段以上のネストを行なう場合は、明示的に
HTMLタグを使用してください。
・@c
センタリング・拡大・太文字の段落を設けます。
・@f
脚注用の段落を設けます。この段落へは"@*"タグでリンクを張ることが
可能です。
・@[keyword]f
絶対脚注用の段落を設けます。この段落へは"@[keyword]*"タグでリンクを
張ることが可能です。keywordは"["と"]"と改行とを除く1文字以上の文字列
です。
・@close
段落を閉じます。@title、あるいは次の段落を開くまでGNSによる段落制御が
行なわれません。
■ 7. 変数タグ
GNSマスタファイル・および設定ファイルには、ファイルの日付などによって
値の変わる文字列を記述するための「変数タグ」を与えることができます。
変数タグはすべて"@"で始まります。変数タグでない"@"をマスタファイルに
書く場合は、"@"という文字列を"@"の代わりに記述してください。
・@/year/
年を示す4桁の数字となります。
・@/month/
月を示す2桁の数字となります。
・@/part/
旬を示す文字(a,b,c)となります。
・@/PART/
旬を示す数字(1,2,3)となります。
・@/prevfile/
前の旬を示すファイル名となります。
・@/nextfile/
次の旬を示すファイル名となります。
・@*
脚注用の段落へのリンクとなります。脚注段落は"@f"で設けます。
・@[keyword]*
絶対脚注用の段落へのリンクとなります。絶対脚注段落は"@[keyword]f"
で設けます。keywordは"["と"]"と改行とを除く1文字以上の文字列
です。
・@/lastmodified/
更新を行なった時刻となります。
■ 8. 引数置換データベースについて
GNSマスタファイル・および設定ファイルには、指定の引数をもとに置換作業を行う
「引数置換タグ」を与えることができます。
引数置換タグはすべて"@"で始まります。引数置換タグでない"@"をマスタファイルに
書く場合は、"@"という文字列を"@"の代わりに記述してください。
引数置換データベースファイル(droot/gns/97.html)は、以下のように
記述されています。
ISIZE [ISIZE ISBN検索]
MAPFAN
JBOOK [JBOOK ISBN検索]
GOO @1a
1番目のkeyフィールドは、置換元となる文字列です。
2番目のreplaceフィールドは、置換先となる文字列です。
replaceフィールドには、"@1a"などの文字列を含むことができます。1文字めの"1"は
引数番号を示し、1〜9を与えます。2文字めの"a"は引数の修飾方法を示します。
a 何も修飾しません。
b 引数中の"-"を削除します。
c 文字列をEUCでURLエンコードします。
d 文字列をSHIFT-JISでURLエンコードします。
GNSマスタファイルに、
@/ISIZE/1-234-56789-0/
@/MAPFAN/139.46.12.4,35.40.39.8,10/
@/JBOOK/1-234-56789-0/
@/GOO/ほげ/
と記述すると、
[ISIZE ISBN検索]
[JBOOK ISBN検索]
ほげ
と置換されます。
■ 9. URI置換データベースについて
GNSマスタファイル・および設定ファイルには、を簡単に記述するための
「URI置換タグ」を与えることができます。
URI置換タグはすべて"@"で始まります。URI置換タグでない"@"をマスタファイルに
書く場合は、"@"という文字列を"@"の代わりに記述してください。
引数置換タグの置換が行われてから、URI置換タグの置換が行われます。同一の
名前を使用することはできません。
URI置換データベースファイル(droot/gns/99.html)は、以下のように
記述されています。
gorry GORRY http://GORRY.hauN.org/diary/digestdiary.html
1番目のkeyフィールドは、置換元となる文字列です。
2番目のnameフィールドは、デフォルトのHREFタグ化文字列です。
3番目のURIフィールドは、リンク先となる文字列です。
GNSマスタファイルに、
@/gorry//
@/gorry/後藤 浩昭/
と記述すると、
GORRY
後藤 浩昭
と置換されます。
■ 10. GNS UPLOAD FORMの使用方法
GNS UPLOAD FORMは、ブラウザでdroot/gns/index.shtmlを開くと表示されます。
この画面は上から順に4つのフィールドに分かれています。
1. エラー表示フィールド
入力結果、あるいは処理中に異常が発生した場合、表示されます。
2. テキスト入力フィールド
本文データを入力するためのボックスが表示されます。
3. コマンド入力フィールド
操作命令やパラメータを入力するためのボックスが表示されます。
4. テスト表示フィールド
データ本体をHTMLで表示します。
コマンド入力フィールドには、以下のボックスがあります。
[OK] readまたはwriteのコマンドを発行します。どちらのコマンドを
発行するかは、[mode]リストから選びます。
[RESET] 入力フィールドをリセットします。
[test] 入力した本文データをテストフィールドに表示します。
[mode] readを選ぶと、現在登録されている本文データを呼び出します。
writeを選ぶと、本文データを登録します。
[PASS] パスワードを入力します。
[Digest Page] ダイジェストページを表示します。
[Help] readme.txtを表示します。
[YEAR] 西暦年を入力します。
[MONTH] 月を入力します。
[DATE] 日を入力します。
[prev] 表示データより1日前のデータを表示します。
[today] 今日(最新登録日)のデータを表示します。
[next] 表示データより1日後のデータを表示します。
[D-Head] ダイジェストヘッダ(10.html)を表示します。
[D-Memo1] ダイジェスト先頭メモ(11.html)を表示します。
[D-Memo2] ダイジェスト末尾メモ(20.html)を表示します。
[D-Foot] ダイジェストフッタ(21.html)を表示します。
[B-Head] ベースヘッダ(30.html)を表示します。
[B-Foot] ベースフッタ(40.html)を表示します。
[Item] アイテム(98.html)を表示します。
[URI] URI置換データベース(99.html)を表示します。
■ 11. 更新通知メール
GNSは、GNS UPLOAD FORMから更新を行なったとき、任意のメールアドレスに
更新を行なったマスタを送信することができます。
1. droot/gns/config.phを編集します。
$FLAG_POSTMAIL = 0;
となっている行を、
$FLAG_POSTMAIL = !0;
としてください。
2. droot/gns/config.awkを編集します。
MAILTO = "yourname@yourhost.net";
となっている行を、
MAILTO = "送信先メールアドレス";
としてください。
更新通知メールは、Subject:が「@@GNS-POSTMAIL」で始まります。メーラで
受信する場合は、これを振り分けキーにすると便利です。
■ 12. メール更新
GNSは、メールで日記の更新を行なうことが可能です。
0. サーバは~/.forwardファイルで任意のプロセスが起動できる設定に
なっている必要があります。
1. droot/gns/recvmail.shを編集します。
cd /~yourhome/droot/gns; awk -f config.awk -f recvmail.awk
となっている行を、
cd recvmail.awkのあるディレクトリ; awk -f config.awk -f recvmail.awk
としてください。
2. ~/.forwardファイルに以下のように記述します。
----
"|/home/user/public_html/droot/gns/recvmail.sh"
yourname@yourhost.net
----
「"|」に続いてrecvmail.shのフルパスを記述します。
次の行には、自分自身のメールアドレスを記述します。これがないと、
受信したメールはすべてrecvmail.shが処理したあと消えてしまいます。
詳しくは、.forwardの記述方法を書いた文書をお読みください。
3. 以下のようなメールを発信します。
Subject: @@GNS-POSTMAIL
本文:
--
01 [year] [month] [date] [password]
(空行)
マスタファイル本体
--
何かエラーがあれば、droot/gns/tmp/recvmail.logに出力されます。
送信するメールの形式は、postmail.awkで通知するメールと同一です。
このため、postmail.awkとrecvmail.shを駆使することで、
1. メールで更新する。
2. 更新した結果を受け取る。
3. 修正や追加は2.で受け取ったメールを更新することで行う。
や、
1. サイトaをGNS UPLOAD FORMで更新。
2. 更新結果がpostmail.awkによりサイトaからサイトbに通知される。
3. サイトbはrecvmail.awkでこれを受信、自動更新を行なう。
といったことが可能になります。
■ 13. 使用許諾
GNSはフリーソフトウェアです。
・各ソースファイルに含まれる著作権表記を削除しないこと。
・21.html・40.htmlに含まれる
GNS
の表記が日記ファイルに任意のブラウザで可読な形式で表示される
こと。
以上の項目を遵守する限り、使用・再配布・改造を認めます。
GNSを使用することにより発生したすべてのトラブルにおいて、作者で
あるGORRYは責任を負いません。とくに、HTTPサーバ上に設置しての使
用は、バグや予想外の事態によりサーバやネットワークシステムに大き
なダメージを与える可能性があります。使用者の責任と厳重な監視のも
とでご使用ください。
[EOF]