webibloを使ってみた

だるそうだなーと思ってたけど、まあまあ簡単だった。
しかし、webiblo.plはImage::Resizeに依存していたので嫌だなーと思ったのでImagerを使うように書き換えた。

diff --git a/webiblo.pl b/webiblo.pl
index ba1fef0..c9af2d2 100755
--- a/webiblo.pl
+++ b/webiblo.pl
@@ -7,7 +7,7 @@ use LWP::Simple;
 use URI;
 use HTML::TreeBuilder::XPath;
 use Text::Xslate;
-use Image::Resize;
+use Imager;
 
 my $style = HTML::Element->new('style');
 $style->attr('type', 'text/css');
@@ -30,11 +30,13 @@ if ( $book->{cover_image} ) {
     my $file = ($uri->path_segments)[-1];
     mirror($uri, "out/$file") unless -f "out/$file";
     $book->{cover_file} = $file;
-    my $image = Image::Resize->new("out/$file");
-    my $gd = $image->resize(600, 800);
-    open my $out, '>', "out/$file" or die $!;
-    print $out $gd->jpeg;
-    close $out;
+    my $image = Imager->new;
+    $image->read(file => "out/$file") or die $image->errstr;
+    $image->scale(
+        xpixels => 600,
+        ypixels => 800,
+    );
+    $image->write(file => "out/$file") or die $image->errstr;
 }
 
 $book->{parts}->[0]->{chapters} = $book->{chapters} unless $book->{parts};

mobiで吐き出してくれるのはすごくいい!自分で設定ファイル書くのは少し辛いものがあるけど。。


Imagerの使い方とか使う機会がほとんどないから、すぐ忘れる。で、perldocで探すんだけど、perldocの検索ってどうやればいいんだろう。
いつもはこんな感じで検索する。もしくはperldocを実行したときのPAGERで検索。

% perldoc Imager | grep scale

見つからない場合は、ほかのモジュールを探す。Imager::Cookbookでまた検索したりとかする。だるい。

Imagerの場合は、perldoc Imagerすればどこに何が書いてあるのか分かるようになってるけど、知らないモジュールを調べるときにもっと簡単にPODの中身を検索する方法はないのかな。