2004年05月08日

「Wikiとの緩やかな連携」MT導入と改造

YukiWikiをベースに、フォーマットルールに若干の拡張を 施したWikiの テキストフィルターのMovableTypeプラグインを 作った。

フォーマットルールの拡張

新しいフォーマットルールでは、YukiWikiオリジナルのフォーマットルールに加えて次の要素が加わった。

拡張内容

  • アンダーライン
  • 打ち消し線
  • 拡張埋め込みタグ
    • WikiやBlogへの手軽なハイパーリンク指定
    • mimeTeXを利用した数式の埋め込みGIFイメージ
  • はてなダイアリーのような>>と<<による引用
  • 数字付きの箇条書き
  • JapaneseWikiName。全角の山カッコで囲まれたスペースと英数をふくまない単語は日本語ウィキ名テストこんなふうに日本語WikiName混在したらだめ。

プラグイン

先日の000010では、プラグインはよく分からんと書いたが、 結局ちゃんと調べてテキストフィルターのプラグインにした。

プラグインの作成

プラグインはYun.pmというモジュールをつくり、 そこにこのサイトのYukiWikiの拡張したtext_to_html関数とそれに必要な関数を抜き出した。 関数名はtext_to_htmlから若干変えてformat_text_to_htmlとした。 このモジュールをextlib\MTフォルダに置く。

プラグイン初期化ファイルの作成

次にMTにプラグインを認識させるため、初期化ファイルを作成しなければならない。 テキストフィルターの初期化ファイル自体は実はそんなに難しくなく、 pluginsフォルダーに初期化ファイルを置いておくだけで良い。 内容はこんな感じのYunWiki.plというプラグイン初期化ファイルを作った。
require MT;

MT->add_text_filter(
    wiki => {
        label => 'YunWiki',
        on_format => sub {
            use MT::Yun qw( format_text_to_html );
            &MT::Yun::format_text_to_html($_[0], toc=>0);
        },
        docs => '',
    }
);

1;

これだけで、エントリーの編集画面のテキストフォーマットの項目でYunWikiというテキストフィルターが使えるようになる。 カテゴリーの設定でこれをデフォルトにしたら、後はYunWikiでテキストを入力するだけ。

簡単。

この記事のトラックバック用 Ping URL: http://www.mediaware.jp/blog/mt-tb.cgi/6
「Wikiとの緩やかな連携」へのコメント  コメントを書く

自己レスのテストを兼ねて自分の記事にコメントしてみる。

最初に山カッコがあったらそのキーワードを覚えておいて、それ以後のテキストに出現するキーワードは自動的にハイパーリンク化というのはどうだろうか?

Posted by yuntanach at 2004年05月10日 11:25
「Wikiとの緩やかな連携」へのトラックバック
コメントを書き込む









メールアドレスを記憶する?


この記事の評価
悪い あんまり 普通 まあまあ 良い





@@@@