#?SuikaWiki/0.9 -[[試験運用中です]] -[[使い方]] --[[このwikiの独自拡張]] --[[古い、すいかゐきのおしらせ]] -[[寄稿文のライセンス]] -[[解決済みのSuikaWikiについての意見]] -のれんわけ --[[SuikaWiki:WikiPage保管形式の検討]] --[[SuikaWiki:URIの形式]] --[[SuikaWiki:内容折衝]] --[[SuikaWiki//名前とリンク]] ---[[SuikaWikiの名前空間実装]] - 2002-10-15 (Tue) 19:30:29 ''[[名無しさん]]'' : "[" "[" '#DateTime' "]]" みたいなの。編集毎に書き加えてく。 (編集毎に書き換えられるのっているかな? 一番お尻に Last modified 出るからねえ) - 2002-10-15 (Tue) 19:31:04 ''[[名無しさん]]'' : ていうかやっぱり #DT っているかな? 要らない気がしてきた。要る場面ってどんなのでしょう? - [25] 目次は態々出力しなくても h[VAR[n]] 要素をスクリプトで列挙すれば良いだけだよなあ。 [35] [[WikiPlugin]] のディレクトリを複数指定できるようにしたいです。 ([[わかば]] [WEAK[2003-03-27 13:21]]) [36] [[Sidebar]] 追加 [[Wiki//Plugin]]。 特定の WikiPage を Mozilla sidebar として追加するボタンを提供。 ([[わかば]] [WEAK[2003-04-17 17:29]]) [37] 名前空間ごと凍結機能。例えば [SAMP[Wiki//Admin//]] に管理情報を集中させて、それを編集不能にする時に一々凍結するのは面倒だし、管理者以外が管理者が書いたかのようなことを書く虞もある。 (この例で実際にそう運用するかは管理者次第だけどね。) その場合、個々の WikiPage の凍結指定による上書きを認めるか否かとか、 他の Wiki で実装例がある、凍結するけど comment は OK、というのも実装してみようかとか検討中。 後者は、基本的に凍結だけどこの WikiForm は OK, という指定も出来たらいいけど、 実装が複雑に(以下略)。 更には、 SuikaWiki では WikiPlugin が mode を追加するのもありだから、他の Wiki にある表編集モードの plugin もあり。 そういう mode 単位の編集制御も必要。 そういうのを考えていくと、結局、幾つかの Wiki で実装されていて、実装されてない Wiki に対しての要望も高い、編集権管理機能に行き着く。 ([[わかば]] [WEAK[2003-04-20 14:14]]) [38] >>37 の続き。こんな処理モデルはどうだろう。 -処理対象 (Wiki, WikiNS, WikiPage, block*) --* block は、現時点では WikiForm block。 将来的には [[H2H]] で任意の block。 --属性「制御権」 := 継承 (既定値) / 制御権名-制御権設定データベース --WikiPlugin 及び wikiconfig から構成 (今の ViewDefinition のように。) --ハッシュ「モード制御権{モード名}」 := 既定モードから継承 (既定値) / *利用者制御権設定 --既定モード = *利用者制御権設定 --利用者制御権設定 := 利用者名 ":" ('R' / 'W' / 'RW') 以上が権限情報データ構造。複雑に見えるのは Wiki-WikiNS-WikiPage-block という構造と mode が直交しているため。一番重みのある情報が当該 block の当該 mode の指定で、一番重みのない情報が Wiki 全体の全 mode 対象の指定。 これを処理する手順。 =クライアントが要求。利用者名 [CODE[anonymous]] を仮定。 =SuikaWiki は処理対象, mode と利用者名からアクセス権情報を取り出す。 =アクセス権に基づき処理又はエラーを返す。 さて、擬似「ログイン」という概念を導入する。認証は [[Apache]]/[[HTTP]] に任せる。 [WEAK[CGI からは名前しか取れないから、自前でやろうとするのは無茶だ。]] =クライアントは認証情報つきで要求する。 =サーバーは認証できれば SuikaWiki に要求を CGI で渡す。 =SuikaWiki は処理対象, mode と利用者名からアクセス権情報を取り出す。 =アクセス権に基づき処理又はエラーを返す。 どう? モデル的には単純でしょ? あとは上手く実装できるかどうかだけど・・・ ([[わかば]]) [39] 。これはいい。 SuikaWiki の map と同じことだけど、図の方が断然いい。 [40] map mode で [[text/*]] とか [[JavaScript関連の媒体型]]で perl が落ちます。 Map plugin の map_make_list の再帰の部分が原因であることは分かりましたが、本質的な原因は分かりません。。。 ([[名無しさん]][iif: undef]) [[#form:'%submit(label=>書込む); %text(label=>"名前:",id=>name,size=>6); %text(label=>"メイル:",id=>mail,size=>5); [WEAK[%check(default,id=>record-date,label=>日付を記録);]]%n;%textarea(id=>msg,size=>20,lines=>3);':'[%index;] %text(source=>msg);%n;(%name;%text(source=>mail,prefix=>" [",suffix=>"]");%iif(source=>record-date,true=>" [WEAK[%date;]]");)%n;':'%require(msg);']] *実装しますが時間がかかるので待って下さい。な項目 - 2002-08-30 (Fri) 12:39:18 ''[[名無しさん]]'' : [[WalWiki]] のアンテナは取り込まないの? --面白いけど現時点で移植して使い物になるか不明。 --実装するとしたら [[Wiki//Plugin]] で。 - 2002-08-30 (Fri) 13:17:25 ''[[名無しさん]]'' : [[一般実体参照]]とか[[数値文字参照]]みたいのを実装きぼんぬ -- 2002-08-30 (Fri) 13:22:48 ''[[わかば]]'' : これも UTF-8 の後ね - 2002-10-09 (Wed) 11:59:20 ''[[わかば]]'' : "「「" ... "」」" を "[[" ... "]]" と同義にしようかと思ってます。 ([[UTF-8]] 化のあとね。) - 2002-10-09 (Wed) 12:01:11 ''[[わかば]]'' : なお、 [[UTF-8]] 化が進まない(というか実行されない)理由は、 (1) ついでに[[名前空間]]導入とかしたいんで、かなり大改造になりそう。 --ていうか[[文字コード]]処理がまだ不十分。 [[perl]] 5.8 も入れなきゃ。 --(2.1) [[Unicode]] にすると似た符号位置問題で危険。 (見て見ぬふり案が有力) --などが挙げられます。 --もちろん、 (999) めんどくさい。 ってのもあります。 - [5] [WEAK[2002-12-01 (日) 20:31]] ''[[わかば]]'': 簡易グラフ機能 [21] : [[わかば]] [sage] : 2003-01-15 20:45 やっぱり技術的内容を扱う Wiki ならそれ相応の語彙が欲しいし。翻訳なら対訳に良い語彙が要るし。 ということで要素の名前空間 (XML の名前空間みたいなもの) は必須だろうな。 だけど今の調子ではきついから、 [[H2H]] を待ちたいところ。 [27] : [[わかば]] : 2003-02-10 19:21 それから、 #form... の省略形を #comment:FormType として、 [VAR[FormType]] の実体 ([CODE[#form]] での形式。) をどっか適当な WikiFormConst 形式の頁に入れておくという実装で、 [[WikiForm]] の aliasing みたいなのをやりたいと思ってますが、これも (ちょっと手間がかかるんで) そのうち。 [28] : [[わかば]] : 2003-02-10 19:23 色んな文書形式への対応は (形式的には) plugin に追い出したけど、 (もちろん完全な追い出しもする必要があるけど、更に) 文書/データベースから情報を取り出す界面, 例えば要約を得るとか、 obsoleted みたいな属性を調べるとか、そういうのもうまく object にして隠匿したいところ。 [29] : [[わ]] : 2003-02-10 19:25 >>28 とも絡んで、今の plugin は便宜上 [CODE(perl)[main::]] package から色んなものを使ってるけど、ちゃんと [CODE(perl)[SuikaWiki::Plugin]] の界面にコーディネートしなおすなどしないといけない。 ;; いずれ [[mod_perl]] 化することも考えて。 [30] : [[わかば]] : 2003-02-23 12:04 CSS 出力は適当でいいから parse して、 Wiki 外部への [[@import]] を削除, [[expression]]() があれば削除, の処理が必要。 [[binding]], [[-moz-binding]] も考えた方がいいなぁ。 代わりに以前から検討中の [CODE(CSS)[-sik-]] 拡張を実装する、ということで。 [33] : [[わかば]] : 2003-02-26 11:02 参考: [[tDiary]] のスタイル機能 (元データの文法を、設定ファイルで1つ選べる。) ''tDiary.org - スタイル機能サポート開始'' [[#form:'%submit(label=>書き込む); %text(label=>"名前 : ",id=>name,size=>"9.5"); %text(label=>"メイル: ",id=>mail,size=>9.5);%n;%textarea(id=>msg,size=>35,lines=>5);':'[%index;] : %name;%text(source=>mail,prefix=>" [",suffix=>"]"); : %date;%n;%n;%text(source=>msg);%n;':'%require(msg);']] **前回の続きから機能 [6] 前に来た時からの変更点がはっきりわかればいいですけど、わからないこともあるんで、わかればいいなあと。 [[YukiWiki]] の差分表示は直前の版からの変更点であって一般にはそれは前に自分が見た時からの変更点ではない、と。 この機能を使いたい利用者はまず名前を送ります。 Wiki 側はそれ以降は (一時) [[cookie]] を使ってこの段階を省略します。 (機能を使わない人は今までどおりなにもしなくていいです。) Wiki page ごとの最終閲覧日時を記録しておいて、次の閲覧時には追加箇所を [[ins要素]]でマーク付けして渡します。 ([[del要素]]で削除点も復活させれば尚良い。) (最終閲覧日時は cookie で保管しておいても良いんですが、通信量が多すぎると思います。) 問題点: -プライバシー。特に、最初の名前認証部分を工夫しないと、他人の閲覧履歴を入手できてしまう。 -履歴保存は [[SuikaWiki]] では未実装。 -ins/del 要素を適切に挿入するには、今の YukiWiki 由来の parser では大改造が必要。 (ほぼ不可能と思われ。) -サーバーが持ってないといけないデータがかなり (利用者数と Wiki page 数にほぼ比例して) 増える。 [7] そういうわけで、実装したらいいと思うけど、無期限棚上げ。 [[#form:'%submit(label=>書き込む); %text(label=>"名前 : ",id=>name,size=>"9.5"); %text(label=>"メイル: ",id=>mail,size=>9.5);%n;%textarea(id=>msg,size=>35,lines=>5);':'[%index;] : %name;%text(source=>mail,prefix=>" [",suffix=>"]"); : %date;%n;%n;%text(source=>msg);%n;':'%require(msg);']] **正しい HTML の出力 [14] : [[名無しさん]] : 2002-12-06 (金) 14:43 今の SuikaWiki では高い確率で正しい HTML を出力しません。 しかも、 [[ruby要素]]を追加した時点で[[文書型宣言]]も[[注釈]]化しました。 -将来的目標として、 [[XHTML]] 適合を目指す。 -短期的目標として、 [[HTML4]].01 Transitional 適合を目指す。ただし ruby 使用時を除く。 -特定 [[UA]] 向け [[downgrade]] (See [[SuikaWiki:内容折衝]]) 時には対象 UA が正しく扱えることだけを目指し、必ずしも [[W3C]] 仕様に適合しなくても良い。 だけど、 [[YukiWiki]] 由来の今の parser のままで HTML 4.01 Strict は無理だろうなー。 [22] >>14 SuikaWiki/0.9 の HTML 出力が関係しない編集とかの一部モードでは、相手が [[Mozilla]] なら [[XHTML]] を吐くようにしました。 ([[Accept:]] 欄は今はまだ見てません。 [[User-Agent:]] で判別中。) [41] : [[わかば]] : 2003-05-31 11:51 [[SuikaWiki::Markup::XML]] が思いのほか使える(謎)ので、 >>14 の roadmap は変更ね。 =とりあえず[[整形式]]な HTML を出力できるようにする =- 既に8割方は完了済み。 =- プラグインの整理と並行してるからちょっと時間がかかるかも。=まともな XHTML になるようになんとかする =- [CODE(HTML)[[[p]] 要素の中に [CODE(HTML)[[[form]]]] 要素が入る問題とかを何とかする。 = [[conneg]] をなんとかして、 [[XHTML2]] 出力 mode をつくる =- XHTML 2 mode では独自の語彙をばしばし使う方向で。 =--まだ出来てない wikipage へのリンクの「?」とかも CSS で出す。 =--[[RDF]] の埋め込みとかも出来るようにする。 =--CODE(HTML) を somewhat:html みたいに要素型にしてみるとか。 =- navigation bar や toc は client 側 script で生成させる。 [42] : [[わかば]] : 2003-05-31 11:52 もっとも、予定はあくまで予定だからね:) [[#form:'%submit(label=>書き込む); %text(label=>"名前 : ",id=>name,size=>"9.5"); %text(label=>"メイル: ",id=>mail,size=>9.5);%n;%textarea(id=>msg,size=>35,lines=>5);':'[%index;] : %name;%text(source=>mail,prefix=>" [",suffix=>"]"); : %date;%n;%n;%text(source=>msg);%n;':'%require(msg);']] **file: 問題 [15] [[WikiForm]] (#form) の第1欄 (入力欄雛形) に , を使って表を書いたり、 * を使って見出しにしたり、 - を使って一覧の項目にしたり出来ない。 これは #form の評価が inline 記法の評価時 (つまり block 記法の評価後) に行われるためである。 この問題は [[file:]] で発見されたので file: 問題と呼ばれる(謎)。 解決法としては #form の評価を block 評価より先に行う方法があるが、そうすると構文の一貫性が失われる。 (しかしそもそも #comment はじめ # 命令類を inline で実装したのが間違いだったとも考えられる。 現在 # 命令として存在するものは実際のところすべて block として評価されるのが適当だし、 [[HTML]] 出力も block 要素だ。) [16] ともかく一貫性のある構文とするためには '[' ']' を使った構文の体系的な見直しが必要と考えられる。 ('[' ']' block の入れ子未実装問題もある。) よってこの問題の修正は先送りし、更に検討する必要がある。 [17] なお、 [[file:]] で発見された問題だけの解決のためであれば を出力する WikiForm plugin を作れば良いが、要素のタグの入れ子関係が異常な[[不思議マーク付け]]となってしまう。 [31] : [[わかば]] : 2003-02-26 11:01 ていうか''file:問題''って名前が分かりにくいので、ちゃんと問題点を反映したもん題名にしませう、 [43] : [[わかば]] : 2003-05-31 12:01 というかそもそも、 WikiForm の埋め込み書式が問題ですよね。 中で改行も出来ないし。見通し悪すぎ。こんな書き方が使えるべきだよね。 [PRE[ { %text(label=>{Your Name}, id => name); }, template=>{ [%index;] %text(source => name); }, option => { page => AnotherPage }, ); ?> ]PRE] だけど面倒だなあ・・・ [[#form:'%submit(label=>書き込む); %text(label=>"名前 : ",id=>name,size=>"9.5"); %text(label=>"メイル: ",id=>mail,size=>9.5);%n;%textarea(id=>msg,size=>35,lines=>5);':'[%index;] : %name;%text(source=>mail,prefix=>" [",suffix=>"]"); : %date;%n;%n;%text(source=>msg);%n;':'%require(msg);']] [20] また、 WikiPage database も ([[YukiWiki]] でもやや実現されていますが) 固定とせず (hard-coding せず) に外部に完全に追い出して、従来の plain-text database on file-system や外部 database 以外に、 [[CVS]] database や [[HTTP]] などからの入(出)力も実装出来れば良いでしょう。 [23] >>20 これって今話題の [[WikiFarm]] の小さい版みたいなものかなあ? [24] >>23 そうともいえるし違うともいえる。 [[#form:'%submit(label=>書き込む); %text(label=>"名前 : ",id=>name,size=>"9.5"); %text(label=>"メイル: ",id=>mail,size=>9.5);%n;%textarea(id=>msg,size=>35,lines=>5);':'[%index;] : %name;%text(source=>mail,prefix=>" [",suffix=>"]"); : %date;%n;%n;%text(source=>msg);%n;':'%require(msg);']]