August 15, 2003

MovableType プラグインを作る

[ Movable Type , Perl ]

MovableType はプラグイン用の API もしっかりと用意されていて、比較的容易にプラグイン開発が可能です。付属ドキュメントや lib/MT/Templates/Context.pm の pod に書き方が詳しく記述されています。

ドキュメントに目を通しつつ二本ほど作ってみました。そのうちの一つはごくごく簡単なフィルタ。URL を見つけたら "LINK" という文字に変換するフィルタです。TrackBack の Excerpt などに URL が入ってきた場合、文字境界がなく折り返せないためにサイドメニューのレイアウトが崩れてしまうときがあるので、その対処のために組み込みました。

package MT::Plugin::TrimLinks;
 
use strict;
use warnings;
use MT::Template::Context;
 
MT::Template::Context->add_global_filter( trim_links => 
  sub  {
    my ($str, $args, $ctx) = @_;
    $str =~ s/([^\=\"]|^)((http|ftp):\/\/[\w\.\/\~\-\+\:\;\?\=\&\%\#]+)/$1<a href=\"$2\">LINK<\/a>/ig ;
    $str;
  }
);
 
1;

基本的にプラグインはコールバックルーチンを書いて、特殊タグにそれをマッピングさせるという方法で作ります。ここでは、MT::Template::Context->add_global_filter に trim_links という属性名で、リンクを置換する処理を登録してます。

このプラグインを使うには

<$MTPingExcerpt trim_links="1"$>

とかしてやります。すると、MTPingExcerpt が展開されたときに、その中に URL が含まれていると "LINK" という文字でそれを置換します。

Posted by naoya at August 15, 2003 03:19 AM | トラックバック (5)  b_entry.gif
トラックバック [5件]
TrackBack URL: http://mt.bloghackers.net/mt/suck-tbspams.cgi/348
wdit.pl
Excerpt: via: MovableType プラグインを作る @ NDO::Weblogさん MovableType はプラグイン用の API もしっかりと用意されていて、比較的容易にプラグイン開発が可能です。付属ドキュメントや lib/MT/Templates/Context.pm の pod に書き方が詳しく記述されています。 * www.movab...
Weblog: B.B.'sWebSpace
Tracked: August 15, 2003 01:03 PM
LinkStack
Excerpt: とりあえずここに放り込み。 URL: タイトル: コメント: NDO Weblog MovableType プラグインを作る すっきりコメントプラグイン ウェブログ@ことのは MT Memo Plugins/Add on ClumsyKen MTIfEm...
Weblog: PukiWiki/TrackBack 0.1
Tracked: February 25, 2004 07:55 PM
MoveableType
Excerpt: AUSGANG SOFT MTでISBN プラグイン Fenrir's BLog MovableTypeのプラグイン作成(邦訳) NDO Weblog MovableType プラグインを作る すっきりコメントプラグイン ウェブログ@ことのは MT Memo Plugins/Add on ClumsyKen MTIfEmpty というプラグイン...
Weblog: PukiWiki/TrackBack 0.1
Tracked: February 26, 2004 03:03 PM
mt-lbp.pl
Excerpt: <pre> タグが入ってるとレイアウトがどんどん崩れるので、適当にプラグインを作ってみました。<pre> タグをブラウザが勝手に折り返すようになります。ついでに行番号なんかもつけちゃったり。文字コードは UTF-8 専用です。 ダウンロード: mt-lbp.pl 使い方は...
Weblog: GANAware
Tracked: March 14, 2004 07:07 PM
トラックバックの概要内のURL対策
Excerpt: トラックバックのExcerptの文章にURLが含まれていた時、 サイドメニューのレイアウトが崩れてしまうこと、たまにありますよね? これまでも何度か発生していて...
Weblog: MacBSの日常生活的日記
Tracked: September 15, 2004 05:16 PM
コメント [0件]