insert flattr javascript via sanitize, not format hook

This makes the javascript be added to rss feeds, which allows the buttons
to be displayed by aggregators. At least, if the aggregator does not
sanitize javascript.
master
Joey Hess 2010-08-12 17:19:20 -04:00
parent 0099a9df8b
commit 3ef8864122
1 changed files with 6 additions and 7 deletions

View File

@ -8,7 +8,7 @@ use IkiWiki 3.00;
sub import {
hook(type => "getsetup", id => "flattr", call => \&getsetup);
hook(type => "preprocess", id => "flattr", call => \&preprocess);
hook(type => "format", id => "flattr", call => \&format);
hook(type => "sanitize", id => "flattr", call => \&sanitize, last => 1);
}
sub getsetup () {
@ -54,17 +54,16 @@ sub preprocess (@) {
'</a>';
}
sub format (@) {
sub sanitize (@) {
my %params=@_;
# Add flattr's javascript to pages with flattr buttons.
if ($flattr_pages{$params{page}}) {
if (! ($params{content}=~s!^(<body[^>]*>)!$1.flattrjs()!em)) {
# no <body> tag, probably in preview mode
$params{content}=flattrjs().$params{content};
}
return flattrjs().$params{content};
}
else {
return $params{content};
}
return $params{content};
}
my $js_cached;