! TODO

!! fobO

!! t@N^O

!! ꉻ

!! ̑
* c=view  page_info  page_id ǉ
* c=view  page_info  page_version ǉ
* c=view  page_info  y[W̓Ԃǉ

* t@CAbv[h@\

* c=view;t=yyyymmddHHMMSS ̂悤Ԃww肷Ǝw肵
_̍ŐṼy[W\ł悤(H)
** 낢ȗ\ 
*** c=view;t=yyyymmddHHMM
*** c=view;t=yyyymmddHH
*** c=view;t=yyyymmdd

----

!! ̑

* p[U̐CCœK

* PStorePageDataSource.rbĎ

* GNX|[g@\
** 鎞_̃TCgŜ̕ÓIHTMLt@CQ
** HTML ȊȌo͂\
** ̂łق̃tH[}bgł̏o͂ȒPɏ͂
** Implement as a tool?

* R}hy[W(H)
** text t@C琶ɃvOɂ萶y[W
** RҏWs
** plugin ɂǉ\(H)
** index  recent R}hy[WɕύX(H)
** bZ[W̍ۉǂ邩ۑ
*** ׂăev[gg悤ɂH
*** plugin  gettext gH
     
* y[Wւ̃R}hy[W(H)
   [<page_name>.history] Ƃ [<page_name>.refer] H
* y[W̃C|[g@\
** y[W̃\[XɃC|[gfBNeBuɂ葼̃y[W
C|[gł悤ɁD
** R}hy[WC|[g̑ΏۂƂ

------------------------------------------------------------ 

! DONE

!! version 0.9.2
* site t[Y@\(dl)
** site_property['is_frozen'] ǉH
** admin.html ɓC𓀃{^ǉH
** data[:site_is_frozen] ̒ǉ
** data[:site_is_not_frozen] ̒ǉ
* is_freezed  is_frozen ɕύX
* access.log ̓̌jɂȂĂoȌC
* snapshotC change_password ŊǗ҃pX[h󂯕t悤ɕύX
* snapshotC change_password ̎ɃvpeBt@CbN 
PageAuthorizationFail OoĂ̂CD


!! version 0.9.1
* page_id_uri ǉ
* page_id, page_name, page_lang, page_title CGI.escapeHTML 
悤ɕύX
* y[W폜@\(ǗҗpCR}hj[o^Cc=delete )
* ŋ10 referer  page_property['refefers'] ɕۑ
* access_log o͋@\(CGI Mode)
** config.rb ŃOt@Cw?
* KakiRequestHandler#exception2html  Exception#to_html Ɉړ
* KakiRequestHandler#time2hash  Time#to_data_hash Ɉړ
* c=index œԂ\D
* c=recent œԂ\D


!!2003N827()
* form <dl>  <p> + <label> ɕύX
** create.html
** admin.html

* VK(New)accesskey c  n ɕύX


!!2003N826()
* view.html ɂTCgeev[gɒǉ

* KakiRequestHandler#main() lang_list -> request_lang_list ɕύX

* Accept-Language ɂev[g؂ς@\
** fBNg܂邲Ɛ؂ւ̂y(H)
** template/ja template/en 

* pł̃ev[g̍쐬

* Ǘ҃pX[hׂ͂Ẵt[Yy[WɗL

* c=edit œ@\ҏWƗ
** pX[hύX

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


!!2003N825()
* c=edit œy[W̌I@\

* PageDataSource ̃LbṼoOC
** y[W soruce_time ƃLbVԂƂrKv

!!2003N825()
* c=index  page_title \

!!2003N822()
* c=create ɌI@\t
* c=edit
** page_id Ɍꂪ΂lang 
** page_id ɌꂪȂꍇ l lang 
** lȂ site_property['default_language'] lang 

* ftHg site_property ɐݒ\(default_language)
* c=admin ŃftHgύX\

* ey[Wʃf[^̐Ɨ\bh(make_common_data()?)ɂ
* y[W̏̌make_common_data()calladmin()̓l̏폜

* recnet.property  page_title ǉ
* c=view  page_property['page_title'] \
* c=save page_title 󂯎悤ɕύX
* c=edit, c=save, c=preview  page_id, page_name, page_lang K؂ɐݒ
* c=edit c=preview  page_title ύX\
* KakiRequestHandler#main ł data[:page_xxx] ̐ݒ̍폜
* ̃NɃN page_title \(dHH)


!!2003N821()
* param ͂eR}h̃\bhɈړCʕ͓Ɨ
protected \bhɂ

* \[XR[h HTML ł邾 template Ɉړ
** edit, preview,  freezed_checkbox  is_freezed őp
** cmd_edit ȊO cmd_xxx app_urlg@ɕύX
** edit, preview, save  cmd_edit  app_url + page_id 
** view,  cmd_edit  :page_name_and_lang g@ɕύX
** c=save  auth_fail_msg 폜H

* c=view, c=preview  :is_freezed ZbgȂoȌC

* eev[gʂ data ̐􂢏o
* eev[gŕKv data ̈ꗗ̍쐬
* WikiApp 𖼑OύX Wiki::RequestHandler ƂH

* datafBNgȉɌfBNgHH
* data/<page_name>/ja  data/<page_name>/en ȂǁcH
* page_id ̎dlύXH <page_name>.<lang>@<version> ɁH
* c=index  y[W//o[W ̊Kwɂ
* c=view œy[W̕ʌւ̃N쐬H
* WikiApp#select_suitable_page -> PageDataSource 
* ToWikiHtml  exist? ɂ`FbN select_suitable_page 
* Accept-Language ɂ؂ւ

!! o[W 0.9.0 ̏
* VXe KakiWiki ɂ
* zzpA[JCu쐬[ ( Makefile )
* README.txt INSTALL.txt


* F؏\bhƂēƗ(WikiApp.rb)
(page_login_ok? admin_login_ok? admin_passwd_exisit? ǉ)

* ev[gSUTF8
** template/*.html  UTF8 
** src/WikiApp.rb ŕԂhttp header  charset  UTF-8 

* ߍURLmailtoXL[ΉƃeXg

* y[WNp
** wb_ƒ`Xg̒PɃAJ[쐬

* TCho[T|[g̃e[}pɃTCho[@\
** Ǘʂ́uTCho[vŐݒ\
** no_sidebar.css, right_sidebar.css, left_sidebar.css 쐬

* WEBrick ɂPƃT[oł̋N ( wikiserv.rb ) 

* site.properties ҏW(Ǘ?)̍쐬
(template/admin.html src/WikiApp.rb)

* TextFormatRules ̏

* ϐ̒u
** page_name -> page_id (p=xxxx)̎wŎgo[W܂߂
** page_title (\Ɏg)
** page_name (== ۑfBNg) ŐVo[Wł page_name == page_id 


* XVy[Wev[gŃtH[}bg悤(?)

* c=edit;p=Hoge@00000001 Ƃ̎wŃXibvVbgҏW
łĂ܂̂𒼂(ŐVo[W̕ҏWʂ(?))

* ڎy[Wev[gŃtH[}bg悤

* y[W\ʂŃXibvVbgƍŐVy[Wւ̃N쐬

* XV Last-Modified ɐݒ
(JE^̕\ςȂȂ̂ŋp)

* y[W̃XibvVbg@\(obNAbv+ÂRec\@\)
** XibvVbgŕۑꂽy[W͕ҏWsƂ(H)
** <version>  sprintf("%08d", version) Ȋ̕
** <page_name>/<version>.txt ("FrontPage/00000001.txt" Ƃ)
** <page_name>/<version>.dat
** <page_name>/<version>.properties
** "page_name@<version>" `̃y[WŃANZX\(H)
** page_property['version_int']=1
** PageDataSource.rb

* c=view Ńy[W̍XV\

* mod_ruby p̃LbV
** قƂǌʂȂc fBXÑLbVւ̃ANZXOS
ɂ胁ɃLbV邩炩H 
** mod_ruby gĂruby ̃vZXSɏ풓킯Ȃ
ʂɐςŃfBXNLbVɔCĂ܂̂mH
** ruby  httpd ɑgݍŊSɏ풓ΈӖ邩H

* src/FilePageDataSource.rb ĉNX쐬 
(src/FilePageDataSource.rb src/PageDataSource.rb )

* Misen ev[gGW̗̍p
** template/*.html
** src/WikiApp.rb

* read_time -> edit_key ƂɕύX
* read_time ɂ鏈Cy[W̍XVԂ̕pX[hƂ
cryptɂF؂ɕύXD
* tDiarỹe[}@\ւ̑Ή(KɁc)
* ݒ̈ꕔ site.properties Ɉړ
* y[W freeze @\
* JE^̕\(template/view.html src/WikiApp.rb )
* t@CύX 
** <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
* y[WҏW̃bN@\(read_time)
* ToWikiHtml < ToHtml ȃNX쐬
** y[W݂ȂWikiName'?'t
* PageProperties ̃eLXg`ł̃t@Cւ̓ǂݏ@\
PagePropertiesFile ֈړ
* template ̏ύX (template/*.htmlC wiki.cgi)
* \̃T|[g(WikiParser.y)


