Template::Plugin::VimColor
Text::VimColor はソースコードをいい感じにマークアップしてくれるモジュールで、テキストの中の Perl コードに色を付けたりするのになかなか便利。
TT から利用できるといいなということで、
<pre> [% FILTER vimcolor %] #!/usr/local/bin/perl use strict; use warnings; print "Hello, World!"; sub foo { my $self = shift; return "bar"; } [% END %] </pre>
と書くと
と言う風になるようにしたい。例によって Template::Plugin::Filter で
package Template::Plugin::VimColor; use strict; use base qw (Template::Plugin::Filter); use Text::VimColor; our $VERSION = 0.01; sub init { my $self = shift; $self->{_DYNAMIC} = 1; $self->install_filter($self->{_ARGS}->[0] || 'vimcolor'); $self; } sub filter { my ($self, $text, $args, $config) = @_; my $filetype = delete $config->{filetype} || 'perl'; my $syntax = Text::VimColor->new( string => ?$text, filetype => $filetype, %$config, ); return $syntax->html; } 1;
としてまずは簡単だけど所望の物はできましたと。あとはこれに Apache::VimColor みたく Cache::Cache でキャッシュするようにした方がいいかなと思ったところで、Cache オブジェクトの ID をどうしようかなとか考えてたらちょっと萎え。
ひとまずこれでいいので CPAN にうpしようと思ったけど時間切れ。数日ネットのない生活を送ります。みなさんよいお年を。