Kentaro Kuribayashi's blog

Software Engineering, Management, Books, and Daily Journal.

ゴッゴル変換 MT プラグイン

遅ればせながら「第 1 回 SEO コンテスト」に参加してみる。なんか「ゴッゴル」という言葉で Google 検索順位を争うというものらしい。んでもって単に参加しますとかいうだけでも面白くないのでなんかやってみようとか思ってたのだけど、特に面白いことも思い付かなかったので、Movable Type のプラグインを作ってみました。このプラグインを用いると、後述する方法で指定した箇所の「。」および「!」が、指定した語(例えば「ゴッゴル。」)に変換されます(変換対象・結果語ともに、追加したり削除したりすることができます)。それだけです。

使い方は以下の通り。

  1. 解凍したフォルダに入っている google.pl を、EUC-JP で MT を運用してるひとはそのまま、UTF-8 の場合は UTF-8 で保存しなおしてから、MT をインストールしたディレクトリ内の plugins ディレクトリに放りこむ
  2. テンプレート内の、ゴッゴル変換したい箇所のタグに goggole="1" を追記する。例えば、エントリ本文の場合、<$MTEntryBody goggole="1"$> といった感じ。コメントやトラックバック等でも同様に goggole="1" を追加することができます(コメント: <$MTCommentBody goggole="1"$>, トラックバック: <$MTPingExcerpt goggole="1"$>)。ひと樣のコメントで SEO です。極悪です。
  3. サイトを再構築したら、ゴッゴル変換された Blog のできあがりです。

動作確認は MT 2.661 の EUC-JP 環境で行っています(つまりこの Blog です)。また、ごろたんに試してもらったところ、MT 3.0D + UTF-8 の環境でも動作したそうです。

ところで、いちいちプラグインを使わなくても、普通に書けばいいじゃないかという向きもあるかと思いますが、プラグインを使用することで、このコンテスト終了後は速やかに上記の逆の手順でテンプレートを変更しサイトを再構築することにより、以前の状態に復帰することができるので、その点、Blog のエントリを汚すことがなくていいかな、と。

また、とりあえずさっと書いてみたものなので句点「。」および「!」のみを変換するようにしてますが「もっとたくさん変換したい! おではインターネットで一番のゴッゴラーになるんだ!」という方は、てけとうに変換対象語句を追加してみてください。初期設定では「。」および「!」のみを変換している関係上、一文が長い文体のひと(僕とか)は不利です。ひとつの文をあまりダラダラ書かないよう心がけましょう。

以下、なんかの参考になったりならなかったりするかもしれないので、上にリンクした zip ファイルに含まれる goggole.pl のソースをここにも掲載しとくます。単に文字列を置換するだけのグローバルフィルタぐらいなら、御覧の通り簡単に書けちゃいます。MT プラグインの作り方に関しては『Blog Hacks』(宮川達彦 + 伊藤直也著、オライリー・ジャパン刊)にわかりやすい説明があるので、興味のある方は参照されてください。

package MT::Plugin::Goggole;
use MT::Template::Context;

# 以下に変換対象語を追加してください
our @patterns = (
    '。',
    '!',
);

# 以下に変換結果語を追加してください
our @replacements = (
    'ゴッゴル。',
    '(・∀・)ゴッゴル!! ',
);

MT::Template::Context->add_global_filter(goggole => sub {
    my $text = shift;
       $text =~ s/($_)/substitute_to_goggole($1)/ge for @patterns;
       $text;
});

sub substitute_to_goggole {
    my $rep = $replacements[rand(@replacements)];
    my $str = shift;
       $str =~ s/$str/$rep/;
       $str;
}

1;