Perl で Sitemap 生成するモジュール WWW::Sitemap::Simple 書いた
Sitemap ファイル生成するとき、いつもリスト生成して、XML 適当に埋めてファイルに書いてってのを毎度やってたのだけど、もうだいぶめんどいのでモジュールにした。実は、Perl には Sitemap を扱うモジュールがいくつかあるのだけど、依存が激しかったりインターフェースがなんかよくわからなくて、自分が扱いたい感じじゃなかったのでさくっと書いた。
use WWW::Sitemap::Simple;
my $sm = WWW::Sitemap::Simple->new;
$sm->add('http://example.com/');
# add with params
$sm->add(
'http://example.com/foo' => {
lastmod => '2005-01-01',
changefreq => 'monthly',
priority => '0.8',
},
);
$sm->write('sitemap/file/path');
オブジェクトに url ばんばん add
して最後に write
すればOK。
write
メソッドは何も渡さなければ STDOUT に吐き出すけれど、ファイル名を渡すでもいいしファイルハンドルを渡すでもいいし、ファイル名のケツを .gz にしとくと圧縮して出力とかしてくれる。
ちなみに自分は sitemap index は生ファイルで生成することが多い。URL 羅列するだけで良いので最も楽。sitemap 自体はいろいろ面倒だったんだけど、これでだいぶ楽になった。