2004-04-15 17:06:24 +0900
(1489d);
rev 3
BitChannel のリクエストコマンド体系。
だいたいのコマンドはメニューから発行できますが
一部に隠しコマンドがあります。
なお、時間がたつと嘘になると思うので、
正確な定義については必ず最新のソースコードを参照してください。
用語定義
- 引数
- CGI パラメータ
- リビジョン
- RCS リビジョン。
BitChannel レベルでは 常に 1.x を仮定し、「1.」を省略した値を取り扱う。
- 違法なページ名
- wc_read に同名のディレクトリが存在するページ (例:CVS)。
もしくは読み書き不可能なエントリが存在する、
ページ名がエンコード後にシステムの NAME_MAX を越える、など。
view
ページを HTML に変換して返す。
コマンドが省略された場合および知らないコマンドを受けた場合のデフォルト。
[引数]
- name
- ページ名。
存在しないページを指定すると edit にフォールバックする。
違法なページ名を指定すると FrontPage の view にフォールバックする。
- rev
- リビジョン (1 以上の整数)。省略すると HEAD とみなす。
edit
ページを編集するためのフォームを返す。
[引数]
- name
- ページ名。
違法なページ名を指定すると FrontPage の view にフォールバックする。
save
ページを保存し、thanks ページを返送する。
ただし編集が衝突した場合はマージした内容を送り返して再度編集させる。
[引数]
- name
- ページ名。違法なページ名を指定するとページ「tmp」の edit にフォールバックする。
- origrev
- 編集を開始したときのリビジョン。
省略すると 0 とみなす。
- text
- ページ内容。省略すると空文字列とみなす。
diff
ページの diff を取る。
メニューからは隣接したリビジョン間での diff しか取れないが、
コマンドにはその制約はない。
[引数]
- name
- ページ名
- rev1
- diff 元のリビジョン (1 以上 HEAD リビジョン以下の整数)。
- rev2
- diff 先のリビジョン (1 以上 HEAD リビジョン以下の整数)。
gdiff
Recent から間接的に使われるコマンド。
ページ全体について特定の時刻からの diff を取る。
[引数]
- org
- diff 元の時刻。YYYYMMDDHHMMSS 形式で指定する。
桁数が足りない場合は末尾を省略していると判定される。
さらに、特殊な値として文字列「cookie」を指定すると
クッキーで記憶させた時刻を用いる。また同時にその時刻を更新する。
history
ページのリビジョン一覧を返す。
[引数]
- name
- ページ名。
存在しないページ・違法なページを指定すると FrontPage の view にフォールバックする。
annotate
ページの各行がどのリビジョンで変更されたのか表示したリストを返す。
[引数]
- name
- ページ名。
存在しないページ・違法なページを指定すると FrontPage の view にフォールバックする。
src
隠しコマンド。ページの生ソースを text/plain で返す。
text/plain でデータを返すと一部ブラウザで問題があるので、
ブラウザから簡単にアクセスできるインターフェイスは設置しない。
[引数]
- name
- ページ名。
存在しないページ・違法なページを指定すると FrontPage にフォールバックする。
extent
隠しコマンド。全ページの生ソースを text/plain で返す。
text/plain でデータを返すと一部ブラウザで問題があるので、
ブラウザから簡単にアクセスできるインターフェイスは設置しない。
引数なし。
list
存在するページ名を sort 順に並べたリストを返す。
recent
存在するページ名を変更時間順に並べたリストを返す。
search
全ページから単語を検索し、ヒットしたページ名の一覧を返す。
検索は固定単語のみで、大文字小文字を無視する。
[引数]
- q
- 検索する単語のリスト。
空白で区切って複数の単語を書くとページ内 AND 検索になる。
system revision 1.162