August 2010 posts

Aug 31, 2010

HTML や XML なんかのケツにコメントとしてテキストを埋め込む Plack::Middleware を作ってみた。

http://github.com/ziguzagu/Plack-Middleware-Watermark

やってることといえば、content type を見て適当なコメントシンタックスを選んで、指定された文字列を追加するだけのお仕事。

use Plack::Builder;
my $app = sub {
    [ 200, [ 'Content-Type' => 'text/html' ], [ "Hello World\n" ] ]
};
builder {
    enable 'Watermark', comment => 'HELLO HELLO!!';
    $app;
}

こうすると、

Hello World
<!-- HELLO HELLO!! -->

こういう出力になる。サブルーチンも渡せたりするので、

builder {
    enable 'Watermark', comment => sub { 'Generated by ' . Sys::Hostname::hostname };
    $app;
}

とかってのもできたり。HTML/CSS/XML/JS な Content-Type にとりあえず対応してる感じ。

でもまぁ、あんまり使い道はないですね :) ただ Plack & Plack::Middleware の勉強にはもろもろちょうど良かったです。まる。