使ってみながら仕様を決めているので、まだまだ仕様は変わっていく予定。
Designed for OldType (OldTypeのためのWikiシステム)
Subversionに直接つないでコンテンツ更新できる
コンテンツの出入口は色々( Webブラウザ、メールなど )
SVN ----[work]----- Kahua <=> Browser
|------[work]----- batch processes <= Plagger,mail,syslogなど
|------[work]----- Emacs,vi,OpenOffice
ユーザーが直接コンテンツを編集し、commitする。
コンテンツをWebから編集 + Subversionへの反映
バックエンドでバッチ加工したデータのSubversionへの反映
ユーザーが作ったプログラムも処理手順に組みこめる(プラグイン)
Web、Subversion直接加工、バッチの三つの更新コンフリクトを調停
画像データやYouTube動画の埋め込みをサポート
edit コンテンツのソースデータ(Officeドキュメントなどもここに置く)
エントリ(記事)の名前.ot UserName.2007_05_05.ot や KeyWord.otなど
コンテンツファイルのネーミングルール(Wikiネーム)
ディレクトリに '_'が入れば、以降のツリーは全て非公開
_private ... 非公開(Web画面からは見えない)
!private ... 自動生成コンテンツ(手動変更不可)
ファイル種別 ${name} はWikiコンテンツ表示名
[[Wiki名]] 内部リンク(InterWikiネームも使用可能)
[[URL|表示名]] 外部リンク(相対URLも使用可能)
##(img URL width: 幅 height: 高さ) 画像(URLにより、内部外部自動判別) '幅' '高さ' は省略可能。
##(youtube contentsID) Youtubeの埋め込み
##(amazon ASIN) Amazonアフェリエイトの埋め込み
##(toc /正規表現/) 正規表現にマッチする目次の展開。(順番はアルファベット順)
##(blog /正規表現/ limit) ブログページの展開。 limitは制限アイテム数(省略可能)
半角空白文字 行末までを整形済としてそのまま表示する
! 行末までをverbatimテキストとする(そのままの文字列を表示=ソースコードの表示などで使う)
!RecentPages.otや !AllPages等の自動生成コンテンツを作る
*.ot => [ot_RecentChanges] => !RecentPages.ot
* ot_RecentChangesは複数のotファイルから最近の更新ページを生成するプログラム
*.ot から *.sexp への変換を行う(日付を見て更新の必要なものだけ選択する)
Wiki/blog/RSSリーダーを統合したCMS
携帯からの絵日記投稿サイトとして(メール、Webの両方からの投稿)
表の編集はOpenOffice Calcのみをサポートしても良いかも。