トップ(最新)

nDiki

2007年4月3日 (火)

WiKickerJSON でのページ出力機能を追加 このエントリーを含むはてなブックマーク

最近は DiKicker ばかりに手を入れていたが、久しぶりに WiKicker の改良も行っている。 しばらく前から実装を始めていた JSON 形式での出力機能が今日完成。

今までは WikiPage について

  • HTML 形式による出力
  • Wiki 文法で書かれている生テキスト形式による出力

という2つの出力形式を持っていたので、JSON が加わることで3つめとなる。

@ サーバ側で WikiPage の構文解析まではやる

クライアントサイドの JavaScript でページの内容に合わせて様々な処理をできるように、サーバ側で構文解析まではしてあげるというのが主な目的。

JavaScript でまたパーサを書いてメンテしていくのも大変なので、その部分はサーバでやってしまおうかと。 構文解析した結果の解析木を JSON 形式で返して、JavaScript 側であとはお好きにという形。

@ CPAN にある JSON モジュールを使用

サーバ側の Perl プログラムには、構文解析をして解析木を作れるようになっている。 この解析木から Visitor パターンで JSON 形式を生成していく。

依存モジュールを増やすことを避けるべく、最初は自前で JSON 形式に変換していこうと思ったのだがやっぱり面倒だった。 ということで CPAN にあるモジュールをチョイス。

JSON 関連では JSONJSON::Syck、JSON::PC などがあるが今回はインストールのしやすさを考えて pure Perl モジュールとして実装されている JSON を採用することにした。

Visitor クラスで解析木を無名ハッシュ/無名配列のツリーに変換して、JSON モジュールに流しこめば OK。

 use JSON;
 my $json = JSON->new(pretty => 1);
 my $js = $json->objToJson($tree);

WiKickerフレームワークにはフォーマット別に出力を切り換える機構があるので、これに JSON を追加して application/json で送るようにして完成。

ちなみに残念ながら JSON 1.07 は Perl 5.005_03 では make test が fail するので、NaneyOrgWiki では使えない。

スポンサード リンク


[ 4月3日全て ]

Related term

■よく検索されるキーワード

torrent(184) expressions(85) 竹内まりや(62) ドラマ(32) x31(28) 動画(27) 手帳(25) 壁紙(25) linux(22) thinkpad(20) usb(19) windows(19) wiki(17) nikon(17) 久米田彩(16) tc-1(16) ボールペン(15) mp3(15) perl(15) 修理(15) 竹内まりあ(14) 無印(12) ほぼ日手帳(12) 写真(12) システム手帳(12) allinanchor:*.torrent(12) ノート(11) debian(11) porter(11) 方眼(10) 画像(10) ヨドバシカメラ(10) a6(10) truecrypt(10) 書き方(9) ダイソー(9) ssh(9) 使い方(9) rcs(9) 2009(9) onkyo(9) ほぼ日(9) ubuntu(9) 無料動画(9) 設定(9) ニコン(9) 作り方(9) 映画(9) skype(8) iphone(8) 蘇える金狼(8) 品川(8) ai(8) リフィル(8) ヨドバシ(8) 2008(8) nikkor(8) 冷蔵庫(8) 加湿器(8) -(8) 大井町(8) firefox(7) バッグインバッグ(7) expression(7) 秋葉原(7) 日本語(7) ヤマダ電機(7) 吉瀬美智子(7) dvd(7) ペリカーノ(7) 変更(6) 三条まゆみ(6) インストール(6) 提案書(6) gmail(6) ダウンロード(6) 万年筆(6) ポーター(6) 無料(6) 無印良品(6)

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 3.085501s / load averages: 0.68, 0.45, 0.36
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)