そういや付けました。結構前に。writeback notifyというプラグインがあったんですけど、配布サイト消えてたり。なので、sendmailで適当に組んでみました。writeback最後の方に以下を追加。
sub notify {
my $body = $_[0];
if (open(MAIL, "| /usr/lib/sendmail -t")) {
print MAIL <<"_MAIL_";
From:writeback\@blosxom.com
To:kyo\@hail2u.net
Subject:hail2u.net - Weblog - Comment/TrackBack
Content-Type:text/plain
X-Mailer:blosxom writeback plugin
$body
_MAIL_
close(MAIL);
}
}
これは、引数に渡された文字列をsendmailで送るサブルーチンです。さらに、128行目あたりのパラメータからファイルに書き込むところを、
foreach (@fields) {
my $p = param($_);
$p =~ s/\x0D\x0A|\x0D|\x0A/\t/gm;
$p =~ s/^\t*(.*?)\t*$/$1/gm;
$p =~ s/<.*?>//gm;
$p =~ s/&/&/gm;
$p =~ s/</</gm;
$p =~ s/>/>/gm;
$p =~ s/"/"/gm;
if ($_ eq 'comment' || $_ eq 'excerpt') {
$p =~ s/(ftp:\/\/[!-~]+\.[!-~]+)/<a href="$1" title="$1">» ftp<\/a>/g;
$p =~ s/(h?ttp:\/\/[!-~]+\.[!-~]+)/<a href="$1" title="$1">» http<\/a>/g;
$p =~ s/(h?ttps:\/\/[!-~]+\.[!-~]+)/<a href="$1" title="$1">» https<\/a>/g;
$p =~ s/(^|[^\x81-\x9f])([!-~]+\@[!-~]+\.[!-~]+)/$1<a href="mailto:$2" title="$2">» mailto<\/a>/g;
}
$p =~ s/\t/<br \/>/g;
$temp .= "$_:$p\n";
}
$temp .= "-----\n";
print $fh $temp;
$fh->close();
$temp = "$blosxom::url$path/$fn.html\n-----\n$temp"; # *1
¬ify($temp);
こんな風に書き換えます。タグ削除とか自動リンクとかそんなものも追加されてますが、根幹は元々各パラメータの値を順に書き加えているのを、一旦$temp
に追加していく様にして、最後に書き込みしてます。その上で、$temp
の先頭(後尾でも良いのですけど)ににそのエントリのParmanent linkを付け加え(*1のところ)、notify
サブルーチンに渡してます。
わかりにく。