]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/flattr.pm
git: write proposed attachment to temp file without going via system()
[git.ikiwiki.info.git] / IkiWiki / Plugin / flattr.pm
index 9cf9dfb138ae74a3333ae102f3ffba44ab4a3952..3aee1eb93320eb1f0631eb58b39b50137c7f17bc 100644 (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);
 sub import {
        hook(type => "getsetup", id => "flattr", call => \&getsetup);
        hook(type => "preprocess", id => "flattr", call => \&preprocess);
-       hook(type => "sanitize", id => "flattr", call => \&sanitize, last => 1);
+       hook(type => "format", id => "flattr", call => \&format);
 }
 
 sub getsetup () {
 }
 
 sub getsetup () {
@@ -54,16 +54,17 @@ sub preprocess (@) {
                '</a>';
 }
 
                '</a>';
 }
 
-sub sanitize (@) {
+sub format (@) {
        my %params=@_;
 
        # Add flattr's javascript to pages with flattr buttons.
        if ($flattr_pages{$params{page}}) {
        my %params=@_;
 
        # Add flattr's javascript to pages with flattr buttons.
        if ($flattr_pages{$params{page}}) {
-               return flattrjs().$params{content};
-       }
-       else {
-               return $params{content};
+               if (! ($params{content}=~s!^(<body[^>]*>)!$1.flattrjs()!em)) {
+                       # no <body> tag, probably in preview mode
+                       $params{content}=flattrjs().$params{content};
+               }
        }
        }
+       return $params{content};
 }
 
 my $js_cached;
 }
 
 my $js_cached;