Naoki Takezoe
takez****@gmail*****
2005年 4月 12日 (火) 14:07:47 JST
竹添です。 On Apr 12, 2005 4:13 AM, ISHIDA Naoto <not20****@anet*****> wrote: > この件と不可分なのが、ページに関する情報を得るAPIを今まで以上に整備する > 必要があるということですね。 ここなんですが、いままではWiki.pm経由で全ての情報を取得するように していましたが、ページもオブジェクトとして扱う方向で考えています。 イメージとしては以下のような感じです。 # ページオブジェクトの取得 my $page = $wiki->get_page(...); # Wikiソースの取得 my $content = $page->content(); # ページ属性の取得 my $value = $page->attribute("..."); ページのバックアップデータ(更新履歴)の取得、保存処理などもページ オブジェクトに対する操作として実装しようと思っています。 (今のWiki.pmは機能詰め込みすぎですから) > Wiki::get_page_list()のようなものは、内部で > キャッシュ(そのリクエストの間は有効)するようにしたほうがいいかと思います。 > ストレージレイヤで隠蔽化するという、方針自体は従来どおりですね。 そうです。まとめに書きわすれてましたが永続化レイヤは残します。 > > ■複数行プラグインについて > > {{pre arg1,arg2}} > > ..... > > {{/pre}} > > > > という記法を導入する。 > > 方針は大賛成ですが、記法については反対票を投じておきます。 > もう少し練りこんだ記法を採用すべきだと考えます。 > > 伝統的なWikiでは行指向のパーザで完結する記法のみがサポートされていまし > た。実装が容易という利点はもちろんですが、ブロック型のマークアップはWiki > テキストを一見したときに文書構造が把握しにくくなるという欠点があります。 > (そもそも文書構造を意識して書くことができる人なら、そんなことないと言わ > れそうですが。意識せずとも構造的になるのが理想です。) > > それでもブロック型の記法は欲しいですから、その点を意識して、使いやすくし > たいです。 > > 上記の欠点は[1]従来の記法との区別が付きにくく、[2]開始と終了が分かりにく > くなりやすそうだということ、[3]さらに入れ子になった場合や、エスケープの > ことがあまり考えられていないように思えることです。 > [4]プラグイン引数が多く、長くなったときも、やはり見辛さが増してしまいます。 > > YukiWiki2.1のバーベイタム機能の記法は考慮されていますね。 > たけぞうさんからは既に却下された例の私の案はもう出しませんが、考慮したつ > もりです。 > [3]については、決め事で済ますこともできるので、必ずしも記法の問題ではな > いかもしれません。[4]は[2]と関連しています。 > > 要点はプラグインの記法そのものについて、文書の中で本文とは容易に区別が付 > くこと=「簡潔で目立つ」ことが重要と思います。それには必要十分な長さの文 > 字列(同じ文字が3文字行頭に連続するなど)で、ある行では単独で存在するこ > とがよさそうです。 確かに従来の記法と区別がつきにくいという問題はありますね。 閉じタグのない従来のパラグラフプラグインなのか、ブロック記法のプラグイン なのか一見で(閉じタグがあるかないかを確認しないと)わからないですね。 記法については改善の余地がありそうです。 > > ■プラグインの引数について > > ・プラグインの引数をクォートできるようにする。 > > ・テーブル(CSV)の場合と同じ記法にしようと思います。 > > ・可能であれば3.5系にも導入します。 > > プラグイン引数の取り出しもAPIを厳格化して、正規化と同時にHTMLエスケープ > も面倒見て欲しいです。生のクエリにアクセスできるようだと脆弱性の温床をう > む懸念が…。 > > 蛇足ですが、上記の複数行プラグインを利用すれば、テーブルはCSVでもTSVで > も、あるいはPukiWiki互換でも可能になりますね。 プラグインの引数は、プラグイン側ではエスケープ前の文字列として 取得できないとまずくないですか? > > ■プラグイン機構について > > プラグインのオンライン・インストール(一覧から選択→TARなどをサーバ側で > GET、もしくはUAからアップロード→展開・配置、までをする)と、本体のオンラ > イン・アップデートを実装したらどうでしょう。PukiWikiやhikiにもまだなさそ > うですけど、野心的な実装として面白いと思います。 > ※Webmin(中身はPerlスクリプト)なんかはそういったものを実装しています。 私もこれは前からやりたいと思ってるんですよねぇ。 > あと、HTTPヘッダー、HTML文書のhead要素に影響を与えるプラグインを書きたい > と思うことがあります。 > link要素やmeta要素をいろいろ追加したいとか、P3Pを付加したいとか、応用的 > だったり、個別の用途に特化したものですが。 これは、あとから入れるのは大変そうですから、必要であれば予めそれを 考慮した実装をしておく必要がありそうです。 -- Naoki Takezoe <takez****@gmail*****>