Blog

mod_blosxom 2.0開発レポート#2

By Hiroyuki OYAMA Tue Nov 4 21:30:46 2003

実はもう既にモノ自体はほぼできあがっているmod_blosxom 2.0なんですが、いくつか追加したいプラグインがあったり、デモンストレーションサイトを用意した上でリリースしたかったりと、いやらしい理由で遅れております。

mod_blosxom 2は今

APIの修整も主なプラグインの開発も大体おわって、実はベータリリースできる状態だったりします。今のところ次の要素の開発が「ほぼ」完了しています。
  • configureスクリプトの追加
  • APIの見直し。主に一貫性。
  • プラグイン設定用にBlosxomPluginSetVarディレクティブ追加。
  • super_*系API追加。(プラグインから、稼動中の他のプラグインの機能を利用する。super_sort, super_entries, super_load_story, super_template, super_interpolate。継承もどき。)
  • mbxsスクリプト開発。(プラグイン用ソースコードジェネレータ)
  • breadcrumb plugin開発。(現在見ているカテゴリの表示)
  • cache_index plugin開発。(テンプレートのレンダリング結果をキャッシュする)
  • cache_stat plugin開発。(記事ファイルのリスト、更新時刻などの検索結果をキャッシュする)
  • charset plugin開発。(送出するコンテンツの文字コードをダイナミックに変換する。 index.html.utf-8とか。)
  • comment plugin開発。(コメント機能)
  • jsfeed plugin開発。(新着記事をdocument.writeするJavaScriptを出力する。くっつき系)
  • prevnext plugin開発。(次の記事、前の記事)
  • referer plugin開発。(refererを元にした参照元リスト)
  • rss plugin開発。(rss 0.91出力。coreから分離)
  • rssrecv plugin開発。(他サイトのRSSを取得、表示する)
  • seemore plugin開発。(「この記事の続きを読む。。。」)
  • storytitle plugin開発。(表示する記事のタイトルをtitleタグにセットする)
  • wikieditish plugin開発。(ブラウザで記事の編集)
  • 重要なのがcache_indexプラグインで、エントリ数やテンプレートの複雑さなどに影響されず高いスループットを維持することができます。mod_blosxomのサイトのコンテンツでテストする範囲では、これを入れると入れないとでは4〜5倍くらいパフォーマンスに差が出ます。デフォルトで組み込むようにしても良いかもしれません。

    あと個人的にsuper_*系APIがお気に入りで、例えばhoge pluginとfuge pluginを
    SetHandler blosxom
    BlosxomAddPlugin  hoge fuge
    といった感じに登録している場合、優先順位的に上位に設定されたfuge pluginでは
    static blosxom_story *fuga_load_story(blosxom_context_rec *ctx,
                                          blosxom_entry *ent)
    {
        blosxom_plugin *plugin;
        blosxom_story *story;
    
        plugin = ctx->super_load_story(ctx, __FILE__);
        story = plugin->load_story(ctx, ent);
        
        /* fuga plugin独自の処理 */
     
        return story;
    }
    という感じに、下位(イメージ的には親)のhoge pluginの機能を再利用することができます。ファイルの読み込みや、レンダリングなどよく利用する処理を再利用することができます。

    あ、rss関係のpluginを持つ都合から、iconv(3)もしくはlibiconvを要求するようにしました。

    今後の作業

    今後開発が必要(というかしたい)要素は、Trackbackプラグインの追加と、細かい部分のクリーンナップ。あとはデモンストレーション用サイトの作成です。現時点でリリースしても良いような気もしますが、アナウンス時のインパクトを高めたいのと、主なターゲットを
    (少ない資源で)Weblogサービスを提供したいインターネットサービス事業者
    に定めた背景から、上記の作業が必要と判断しました。
    目標2003年11月第2週末〜3週頭にはリリースしたいですね。←誰

    Comments

    Post a comment

    Name:


    URL:


    Comments:


    WebエンジニアのためのApacheモジュールプログラミングガイド

    ApacheをHackする!
    モジュールプログラミング強烈初体験!!
    定価: 2,919円(税込)
    ISBN: 4-7741-1799-4

    hiroyuki_oyama IM status

    Apache Users

    Apache Modules

    CPAN


    Home > Blog > mod_blosxom 2.0開発レポート#2