Kentaro Kuribayashi's blog

Software Engineering, Management, Books, and Daily Journal.

コードを Vim のカラーシンタクスで色分けする MT プラグイン

nobu417.net: Perl ソースを Blog でも簡単に色分け表示させてみよう計画」にて、Blog に掲載した Perl スクリプトを色分け表示する試みが行われていたので「おー」と思いつつ、CPAN を検索してみたら Text::VimColor というそのまんまなモジュールがあったので、さっそく MT プラグインを作ってみました。って、Text::VimColor が全てやってくれるので、僕は何もしてないわけですが…。くぱん素晴らしいですね。最高ですね。

Text::VimColor をインストールし、上のスクリプトを vimcolor.pl とか適当な名前(.pl で終わる名前)をつけて、MT インストールディレクトリ下の plugins ディレクトリに放り込み、テンプレート内の色分けしたい箇所(普通は MTEntryBody ですね)を <$MTEntryBody vim_color="1"$> みたいな感じで vim_color="1" を書き足し、再構築。すると、コードがなにやらあやしげな span でマークアップ(詳細はドキュメントにて)されるので、スタイルシートをちょろっと書いてできあがり。実行例は、以下の例のようになります。「おー、vim だ!」という感じで、わりと面白いです。読みやすくなったかどうかはわかりません(w

#!/usr/bin/env perl

use strict;
use WWW::Mixi;

# 指定されたメールアドレス、パスワードにより、mixi にログイン
my $mixi = WWW::Mixi->new('メールアドレス', 'パスワード');
   $mixi->login;

# mixi トップページを取得し、標準出力に書き出す
my $response = $mixi->get('home');
print $response->content;

ただまぁ、vimcolor.pl はこの Blog のマークアップ決め打ちなので、他の Blog ではそのままではちゃんと動かないと思います(手抜き

ここで問題がちとあって、vimcolor.pl の Text::VimColor コンストラクタ呼び出しのところで、filetype => 'perl' としているのですが、ここを指定なしにすると、#!/usr/bin/perl とかそんなんで始まってるコードは自動的に判別してくれるっぽいけど、そうでないとちゃんと判別できないっぽいニュアンスを感じたので、どうせこれからしばらくは Perl のコードしか載せないだろうからってんで、filetype を perl で決め打ちにしました。そのせいで、たとえば PHP のコードとかだと素っ頓狂なことになってるかもしれませんが、まぁ気にしません。

ミスっていたのを、とぴあさんにご指摘いただきました。ありがとうございます。