BitChannelPolicy

2008-09-13 16:59:28 +0900 (28d); rev 27

大方針

順番は有意

機能

CVS が使えるのは必須。CVS がちゃんと使えないと意味がない。 オプショナルにするといろいろうざったいので CVS は必須の前提で実装する。 そもそも CVS を使わないなら AsWiki でよかったのだ。

Wiki として最低限の機能があればいい。 つまりページの編集機能だ。

削除とか凍結とかは考えないことにする。 めんどうだし、メニューがたくさん並んでるのは好きじゃない。 ちゃんと管理したいところは Wiki を使わなければいいことだ。

当面プラグインとかも考えない。 めんどくさいし、あまりカスタマイズ性を高める気はない。

プレゼンテーション層のカスタマイズは全て eRuby スクリプトを直に編集させる (Wiki レベルでは設定できないようにする)。

サイドバーを付けるのは構わないけど、 CSS に対応してないブラウザで見たときにいきなりサイドバーの内容が 並んでるのはいただけない。 また、付けるならテンプレートをいじってもらうことにする (Wiki レベルでのカスタマイズを許さない)。

ページ目次は付けない。 目次が欲しくなるのはページが大きすぎるからだ。 大きくなったらさっさと分割すべき。 同様の理由で段落やセクションにアンカーを付ける気もあんまりない。 が、こっちは検討してもいい。

リンク

WikiName は使いたいな。いちおう Wiki だし。

WikiName をタイトルに出すときに空白を入れる WikiEngine もあるが、 BitChannel ではやらない。理由は、「ReFe」が切れると嫌だから。

BracketName は実は何も考えずに入れてしまった。 それは日本語ページ名を使えるようにするために入れていたのだが、 その後に日本語を使えなくしてしまったので外すべきかもしれない。 しかし「tdiarytimes」とか「tDiary」の例を考えると どうしても BracketName を使いたくなる。 何と言われようとも、Tdiary って書くのだけは嫌なんだよ! 気持ち悪いんだよ! まあ CacheLesstDiary みたいに後ろにつけるっていう 回避方法もあるけど、いまいちだ。 できるだけ WikiName を使うように運用面でカバーしよう。

テキストとリンク先を別にする機能は導入したくない。 [BitChannelPolicy|表示テキスト] のようなやつね。 なぜ導入したくないかと言うと、 全く意味のないテキストをリンクにする人があまりに多すぎるからだ。 例えば「ここ」とか「このページ」 というテキストをリンクにする人はいまだにたくさんいる。

日本語リンクはやっぱり欲しい。 欲しいが、どういう形式が一番望ましいかよく考えてから導入したい (いったん公開してしまった URL を変えたくないのでテスト実装もしない)。 → JapanesePageName

リンクを逆にたどる機能 (ReverseLink) は欲しい。 もといたページに戻るときに便利そうだ。

[ruby-list:12345] と書きたいがためだけに InterWiki を実装することにした。

メニュー

メニューはよく使う人 (よく編集する人) にとって使いやすくする。 つまり、初心者を優先しない。

メニューの先頭は Edit で最後は Help。

残りの項目の並び順はよく使う順にする。

あまり項目を増やさない。 幅を取りすぎない。

角括弧で囲むのは (無駄に幅を取るだけに思えるので) あまり好きじゃない。 バーで区切るのもごちゃごちゃするだけに見える。

日本語を使うのは嫌いじゃないんだけど、 日本語を使うなら使うで全部日本語にしたい。

特定のページに関するメニューと、 サイト全体に関するメニューは分けるべきだろうか。 いまのところ、いちおう配置は分かれているが、 それ以上のことはしていない。これは仕様の問題ではなくて、 配色をどうしたらいいか思いつかないからである。

http://sheepman.parfait.ne.jp/wiki/WikiNavigationDesign
各種 WikiEngine のメニューの比較と、その可否について
http://css-discuss.incutio.com/?page=EmulatingFixedPositoning
IE で posision: fixed をエミュレートする

実装

簡潔にして高速を目指す。

意味のないキャッシュを徹底的に排除。 本当に必要になったときだけキャッシュする。 → NoMoreCache

amrita とか使うのは大袈裟すぎるので却下。 erb は、かろうじて可。 rhtml は小分けにしすぎないようにして見通しをよくする。

パーサジェネレータ禁止。 パーサとスキャナ分けるのも禁止。

拡張ライブラリ禁止。

Ruby 1.8 が入っていれば動くようにする。 とりあえず Ruby 1.6 は忘れておく。

実装の細かいところに関しては BitChannelImplementation を参照。

文法

RD が好きなので RD ベース。 ただしインラインは嫌いなので使わないことにする。 インライン文法は思いきり Wikiっぽくしよう。 Ruby ベースの Wiki をいろいろ比較検討して、 AsWiki の仕様を元にすることにした。

他の Wiki に慣れてる人もそれなりに救済したいので 衝突しない範囲で互換文法を許すことにする。 需要があるのは Hiki だろうから、 Hiki の文法をいくつか許可することにする。 例えば「!」のキャプションや「**」「##」の形式のリストなど。 → BitChannelSyntaxDetail

RD スタイルの desc list は取り入れることに決めた。 ただし dd 中にブロック構文をネストするのは不可にする。 リファレンスマニュアルは書けないな。

少しいじっていて目指す文法の規則が見えてきた。 ブロック構文のネストが一切起こらないようにすることだ。 つまり、任意の一行を取り出したとき、 その行はただ一つのブロック構文に属するか、 または空行でなければならない。

強調とか斜体とか打ち消し線とかセンタリングとか その他もろもろの装飾機能は一切サポートしない。無駄無駄無駄。

http://lab.lolipop.jp/fswiki/wiki.cgi/wikistandard
Wiki文法標準化案

その他

たぶんやらない

絶対にやらない


system revision 1.162