
! ChangeLog

!! version 1.0.2
* freeze されている文字列をuntaint しようとしてエラーになっていた部分
を修正(Ruby 1.8 環境で環境変数が frozen されるようになってため)
* エラーページ生成中に例外が起きた場合に，なにも表示されなくなるバグを修正
(text/plain で例外を表示するように変更した)
* text/plain での例外の表示に Exception#to_s() と Exception#backtrace()
の内容を追加

!! version 1.0.1
* 各テンプレートファイルの末尾に KakiWiki のページへのリンクを 追加
* site_property['ignore_site'] を解釈する際に RegexError が出たものを
無視するように変更
* ''強調''、'''強い強調'''、==取り消し線==のマークアップ内に
WikiNameやURIがあるとパースエラーになるバグを修正
* $theme_dir に CVS ディレクトリがある場合にテーマ選択部分に
表示されてしまうバグを修正
* exerb の新しいバージョン用に KakiServ.exr を追加

!! version 1.0.0
* c=rss で更新日時のタイムゾーンのバグを修正
* c=recent，c=rss で表示する個数をn=xxのように指定できるように変更
* 各テンプレートの末尾にデバッグ用 <misen:debug /> 要素を追加
* 特定のIPからのアクセスのとき，カウンタを増加しないように変更
(site_property['ignore_site'] を参照)
* c=admin に site_property['ignore_site'] 編集機能を追加

!! version 0.9.9
* en/recent.html で閉じ括弧 ')' が足りないバグを修正
* 英語テンプレートの':'部分が全角の'：'になっているバグの修正
* default テーマの border の太さを微修正
* mod_ruby，WEBrickでの高速化のためにテンプレートをメモリ上にキャッシュ
(OS のディスクキャッシュが有効ならほとんど効果はなさそう)

!! version 0.9.8
* c=rss の URI が絶対 URL になるように変更
* 複数行の箇条書を書くと箇条書が終了してしまうバグを修正
* 箇条書内部に複数の箇条書を配置できるように変更
* referer と server_uri との URI 比較処理を修正
* 設定ファイルをRubyスクリプト(config.rb)から通常のファイルに変更

!! version 0.9.7
* 時刻表示にタイムゾーンを追加
* 全ページの site_info に「サーバ時間」を追加
* index.html recent.html のページの更新日時からタイムゾーンを削除
* admin.html, delete.html に管理者メニューを追加
** 「サイト設定」
** 「ページ削除」
** 「RSS」

!! version 0.9.6
* c=create で「新規」コマンドへのリンクを無効に変更
* mod_ruby でページ削除に失敗するバグを修正
* PageDataSource#parse_page_id の言語コード判定部分を修正
* テンプレートからのページ生成を各コマンドのメソッドに移動
* config.rb に $template_dir 変数を追加
* @paeg_data_source をアクセサメソッド経由に変更
* RSS 生成機能

!! version 0.9.5
* c=delete から各ページへのプロパティへのリンク追加
* 存在しないページを編集しようとしたときにFrontPageの編集になるバグを修正
* 例外を StandardError から個別のクラスに変更
* c=indexでスナップショットにもカウンタを表示
* index.html recent.html の微修正
* c=save から c=view への自動移動を Refresh で実装

!! version 0.9.4
* c=property でページIDのリンクのURLが間違っているバグの修正
* c=property で referer の URL を HTML エスケープするように変更
* c=property で <ol id="referer_list"> を <div id="referer_box">
で囲むように変更
* default.css に <div id="referer_box"> のスタイルを追加
* c=index のページタイトルを削除
* c=index の凍結状態の表示位置を変更
* c=index に各ページへのプロパティへのリンク作成
* c=recent に各ページへのプロパティへのリンク作成
* c=property で凍結状態を<em></em>で囲むように変更
* 英語テンプレート中の freeze -> Freeze に変更
* en/property.html の Frozen を Freeze に変更
* c=index のスナップショットにもプロパティへのリンク作成
* c=recent でスナップショットにアクセス回数を表示するように変更
* data[:app_url] を request_variables['SCRIPT_NAME'] からに変更
* data[:app_url] -> data[:script_path] に変更
* WEBrick 版で /kaki にマウントするように変更
* WEBrick 版で /kaki にリダイレクトするコードを / にマウントするように変更
* CGI 版で $log_file が設定されていない場合にログを出力しないように変更
* referer を記録する際に URI の fragment を削除するように変更
* property.html にページタイトルを追加


!! version 0.9.3

* index.html, recent.html 「アクセス回数」→「ヒット」に変更
* c=view から c=property へのリンクを作成
* c=property に referer へのリンク作成
* c=property でページのプロパティを表示するページ作成
* referer で自ホストからの接続を記録しないように変更？
* request_header -> request_variables に変更
* kaki.cgi で main の第一引数を ENV に変更
* KakiServ.rb で main の第一引数を HttpRequest#meta_vars に変更
* main() 内で request_header 参照個所の参照名を変更
** 'referer' -> 'HTTP_REFERER'
** 'accept-language' -> 'HTTP_ACCEPT_LANGUAGE'
* ページ作成時のタイトルを page_id から page_name に変更
* c=view の page_info に page_id 追加
* c=view の page_info に ページの凍結状態を追加


!! version 0.9.2
* site フリーズ機能
** site_property['is_frozen'] を追加
** admin.html に凍結，解凍ボタン追加
** data[:site_is_frozen] の追加
** data[:site_is_not_frozen] の追加
* is_freezed を is_frozen に変更
* access.log の日時の月名が曜日名になっていたバグの修正
* snapshot， change_password で管理者パスワードを受け付けるように変更
* snapshot， change_password の時にプロパティファイルロック中に 
PageAuthorizationFail 例外を出していたのを修正．


!! version 0.9.1
* page_id_uri を追加
* page_id, page_name, page_lang, page_title をCGI.escapeHTML 
するように変更
* ページ削除機能(管理者用，コマンドメニュー未登録，c=delete )
* 最近10個の referer を page_property['refefers'] に保存
* access_log 出力機能(CGI Mode)
** config.rb でログファイルを指定?
* KakiRequestHandler#exception2html を Exception#to_html に移動
* KakiRequestHandler#time2hash を Time#to_data_hash に移動
* c=index で凍結状態を表示させる．
* c=recent で凍結状態を表示させる．


!!2003年8月27日(水)
* formの <dl> を <p> + <label> に変更
** create.html
** admin.html

* 新規(New)のaccesskeyを c から n に変更


!!2003年8月26日(火)
* view.html にあるサイト情報を各テンプレートに追加

* KakiRequestHandler#main() lang_list -> request_lang_list に変更

* Accept-Language によりテンプレートを切り変える機能
** ディレクトリまるごと切り替えるのが楽(？)
** template/ja template/en 

* 英語版のテンプレートの作成

* 管理者パスワードはすべてのフリーズページに有効に

* c=edit で凍結機能を編集から独立
** パスワード変更

* page_login_ok?(page_id, passwd) を page_login_ok?(property, passwd) に


!!2003年8月25日(月)
* c=edit で同じページの言語選択機能

* PageDataSource のメモリキャッシュのバグを修正
** ページの soruce_time とキャッシュした時間とを比較する必要がある

!!2003年8月25日(月)
* c=index で page_title を表示

!!2003年8月22日(金)
* c=create に言語選択機能を付ける
* c=editで
** page_id に言語があればそれをlang に
** page_id に言語がない場合 l をlang に
** lもなければ site_property['default_language'] をlang に

* デフォルト言語を site_property に設定可能に(default_language)
* c=admin でデフォルト言語を変更可能に

* 各ページ共通データの生成処理を独立したメソッド(make_common_data()?)にする
* ページ毎の処理の後にmake_common_data()をcallしてadmin()中の同様の処理を削除

* recnet.property に page_title を追加
* c=view で page_property['page_title'] を表示
* c=save page_title を受け取るように変更
* c=edit, c=save, c=preview で page_id, page_name, page_lang を適切に設定
* c=edit c=preview で page_title を変更可能に
* KakiRequestHandler#main での data[:page_xxx] の設定の削除
* 文書中のリンクにリンク先の page_title を表示(重い？？)


!!2003年8月21日(木)
* param 解析を各コマンドのメソッドに移動，共通部分は独立した
protected メソッドにする

* ソースコード中の HTML をできるだけ template に移動
** edit, preview, の freezed_checkbox を is_freezed で代用
** cmd_edit 以外の cmd_xxx をapp_urlを使った方法に変更
** edit, preview, save の cmd_edit を app_url + page_id で
** view, の cmd_edit を :page_name_and_lang を使った方法に変更
** c=save の auth_fail_msg 削除？

* c=view, c=preview の :is_freezed が正しくセットされないバグの修正

* 各テンプレート共通の data の洗い出し
* 各テンプレートで必要な data の一覧の作成
* WikiApp を名前変更 Wiki::RequestHandler とか？

* dataディレクトリ以下に言語ディレクトリを作る？？
* data/<page_name>/ja や data/<page_name>/en など…？
* page_id の仕様変更？ <page_name>.<lang>@<version> に？
* c=index を ページ/言語/バージョン の階層にする
* c=view で同じページの別言語へのリンクを作成？
* WikiApp#select_suitable_page -> PageDataSource に
* ToWikiHtml で exist? によるチェックを select_suitable_page に
* Accept-Language による切り替え

!! バージョン 0.9.0 の準備
* システム名を KakiWiki にする
* 配布用アーカイブ作成ルール ( Makefile )
* README.txt INSTALL.txt


* 認証処理をメソッドとして独立(WikiApp.rb)
(page_login_ok? admin_login_ok? admin_passwd_exisit? 追加)

* テンプレートを全部UTF8に
** template/*.html を UTF8 に
** src/WikiApp.rb で返すhttp header の charset を UTF-8 に

* 埋め込みURLのmailtoスキーム対応とテスト

* ページ内リンク用
** ヘッダと定義リストの単語にアンカーを作成

* サイドバー未サポートのテーマ用にサイドバー制御機能
** 管理画面の「強制サイドバー制御」で設定可能に
** no_sidebar.css, right_sidebar.css, left_sidebar.css 作成

* WEBrick による単独サーバでの起動 ( wikiserv.rb ) 

* site.properties 編集画面(管理画面?)の作成
(template/admin.html src/WikiApp.rb)

* TextFormatRules の書き直し

* 変数名の置き換え
** page_name -> page_id (p=xxxx)の指定で使うやつバージョンも含める
** page_title (表示に使うもの)
** page_name (== 保存するディレクトリ名) 最新バージョンでは page_name == page_id 


* 更新履歴ページをテンプレートでフォーマットするように(?)

* c=edit;p=Hoge@00000001 とかの指定でスナップショットを編集
できてしまうのを直す(最新バージョンの編集画面へ(?))

* 目次ページをテンプレートでフォーマットするように

* ページ表示画面でスナップショットと最新ページへのリンクを作成

* 更新日時を Last-Modified に設定
(カウンタの表示が変らなくなるので却下)

* ページのスナップショット機能(バックアップ+古いコンテンツ表示機能)
** スナップショットで保存されたページは編集不可とする(？)
** <version> は sprintf("%08d", version) な感じの文字列で
** <page_name>/<version>.txt ("FrontPage/00000001.txt" とか)
** <page_name>/<version>.dat
** <page_name>/<version>.properties
** "page_name@<version>" 形式のページ名でアクセス可能に(？)
** page_property['version_int']=1
** PageDataSource.rb

* c=view でページの更新日時を表示

* mod_ruby 用のメモリキャッシュ
** ほとんど効果なし… ディスク上のキャッシュへのアクセスがOS
によりメモリ上にキャッシュされるからか？ 
** mod_ruby を使ってもruby のプロセスが完全に常駐するわけじゃないし
メモリ大量に積んでディスクキャッシュに任せてしまうのが確実か？
** ruby な httpd に組み込んで完全に常駐すれば意味があるかも？

* src/FilePageDataSource.rb を汎化したクラスを作成 
(src/FilePageDataSource.rb src/PageDataSource.rb )

* Misen テンプレートエンジンの採用
** template/*.html
** src/WikiApp.rb

* read_time -> edit_key とかに変更
* read_time による処理を，ページの更新時間の文字列をパスワードとした
cryptによる認証に変更する．
* tDiaryのテーマ機能への対応(適当に…)
* 設定の一部を site.properties に移動
* ページの freeze 機能
* カウンタの表示(template/view.html src/WikiApp.rb )
* ファイル名変更 
** <page_name>/<page_name>.txt -> <page_name>/recent.txt
** <page_name>/<page_name>.dat -> <page_name>/recent.dat
** <page_name>/<page_name>.properties -> <page_name>/recent.properties
* ページ編集時のロック機能(read_time)
* ToWikiHtml < ToHtml なクラスを作成
** ページが存在しないWikiNameに'?'を付ける
* PageProperties のテキスト形式でのファイルへの読み書き機能を
PagePropertiesFile へ移動
* template の書式変更 (template/*.html， wiki.cgi)
* 表のサポート(WikiParser.y)


