[hack] 物理データ構造
ワークディレクトリ
ワークディレクトリは、スクリプトファイルのフルパスの拡張子を
- UTF-8 運用の場合は「.d」、
- EUC-JP 運用の場合は「.dat」
に変えたもとのなる。 ワークディレクトリは CGI にて、初回実行の際、自動作成される。
コード量削減の為、スクリプトはワークディレクトリへ chdir して動作する。
管理ファイル一覧
通称 | 設定者 | 内容 |
---|---|---|
ページファイル | CGI生成 | ユーザがタイプしたページ内容をそのまま保持するテキスト |
添付ファイル | CGI生成 | 添付ファイル。ファイル名以外無加工 |
タグファイル | CGI生成 | 添付ファイルの一種の形で作成される |
設定ファイル | CGI生成 | 1個のみ。変数:値形式で、設定内容を保持 |
プラグイン | FTP設置 | ユーザによりワークディレクトリ(後述)内に設置 |
本体スクリプト | FTP設置 | ユーザにより、任意の CGI 実行可能ディレクトリに配置される。 |
本体スクリプトを除き、これら全て、ワークディレクトリに配置する。 また、これら以外のファイルは、原則作らない。
プラグインで利用するファイルも、ページファイル、あるいは添付ファイルの形で作成し、 ブラウザ経由でユーザに変更・削除ができることを保証する。
添付ファイル
ファイル名形式:hhhhhhh__aaaaaa
- hhhhhhh
- 16進 ASCII 化したページ名。perl だと unpack('h*',ページ名) で生成する。
- aaaaaaa
- 16進 ASCII 化した添付ファイル名。perl だと unpack('h*',ファイル名) で生成する。
タグ
ファイル名形式:hhhhhhh__00aaaaaa
- hhhhhhh
- 16進 ASCII 化したページ名。perl だと unpack('h*',ページ名) で生成する。
- aaaaaaa
- 16進 ASCII 化したタグ。perl だと unpack('h*',タグ名) で生成する。
ファイル自体は 0 バイト
設定ファイル
固定で一つのみ存在する 。 1.0.1 までのファイル名は 「ワークディレクトリ/__0716373777f62746」 (語源は '__' . unpack('h*','password') の結果)。 1.0.2 以降は「ワークディレクトリ/index.cgi」に変わっている。
- (ファイルの内容)
- = { (変数名) + (TABコード) + (値) + (改行コード) }の繰返し + EOF
- (変数名)
- = { (非空白文字) } の繰返し
- (値)
- ≪二値の場合≫ 未設定「0」「NG」が偽、それ以外は真
- ≪テキストの場合≫ 設定テキストそのまま。ただし、 キャレット(^) ⇒ ^y , 改行コード(LF) ⇒ ^n , 復帰コード(CR) ⇒ ^r , タブコード(TAB) ⇒ ^t と置換されている。
- 本ファイルのみ、パーミッション(セキュリティー)の配慮が必要
- 定義行の順は何でもよし。
- 設定未定義の解釈は、設定内容ごとに解釈
- 変数名には、名前空間は特に設けていない。
- 利用している変数としては下記がある(全てではない)
変数名 | 型 | 値 |
---|---|---|
crypt | テキスト | crypt(〜,'wk') で暗号化したパスワード |
sitename | テキスト | サイト名(EUC) |
locallink | 二値 | file:// のリンクを有効にするか |
CSS | テキスト | CSS のページ名 |
sectionmark | テキスト | 標題先頭のマーク |
target | テキスト | 外部リンクへの target 属性 |
|