オートリンクのMT Plugin

 本文作成中にURLだけを平文で記述すると自動的にリンクにしてくれます。
 MTの本文中のURLを保存時に自動的にアンカータグ付きのURLに変換してくれるプラグインです。グローバルモディファイアを使って制御します。正規表現を使って自動変換しています。以下のソースをurllink.plとして保存してプラグインフォルダーに放り込んでおきます。
 MT本文のタグ内で、
<$mt:EntryBody urllink="1"$>
という風に使用します。他のどのタグでも使用可能ですが、使いどころはEntryBody内だと思います。
 やりようによってはTwitterの@マーク以降の名前なんかのリンクとか、いろいろできそうです。しかしすでにアンカータグで書かれているURLまで変換されてしまうので、かなり不完全なプラグインなのでご注意。

urllink.pl
package MT::Plugin::URLLink;
#--------------------------------------
#        URLLink
#        URLを自動リンクにするプラグイン
#--------------------------------------
use strict;
use base qw( MT::Plugin);
my $plugin = MT::Plugin::URLLink->new({
    id            =>        'urllink',
    key        =>        '__PACKAGE__',
    name        =>        'URLLink',

    registry => {
        tags => {
            modifier => {
                'urllink' => \&hdlr_urllink,
            }
        }
    }
});

#--------------------------
# プラグインの機能はここから
#--------------------------
MT->add_plugin($plugin);

sub hdlr_urllink {
    my ($text, $arg, $ctx) = @_;
    $arg or return $text;
   
    $text =~ s/(https?:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/<a href=\"$1\">$1<\/a>/g;
    return $text;
}

1;






プロフィール



  • Name :: 山上オサム ♂(37)
  • Hobby :: 武術
  • Work :: Web Designer