]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/toggle.pm
call format hooks when generating page previews
[ikiwiki.git] / IkiWiki / Plugin / toggle.pm
index 4a16ef32c70db4c7f188e8790be78e285cfdf55e..8089443e02b9296d37d393b83ba6456a7c0a4e45 100644 (file)
@@ -80,7 +80,13 @@ sub preprocess_toggle (@) { #{{{
        my %params=(id => "default", text => "more", @_);
 
        my $id=genid($params{page}, $params{id});
-       return "<a class=\"toggle\" href=\"#$id\">$params{text}</a>";
+       if (! $params{preview}) {
+               return "<a class=\"toggle\" href=\"#$id\">$params{text}</a>";
+       }
+       else {
+               return "$params{text} ".
+                       gettext("(not toggleable in preview mode)");
+       }
 } # }}}
 
 sub preprocess_toggleable (@) { #{{{
@@ -89,7 +95,7 @@ sub preprocess_toggleable (@) { #{{{
        # Preprocess the text to expand any preprocessor directives
        # embedded inside it.
        $params{text}=IkiWiki::preprocess($params{page}, $params{destpage}, 
-               IkiWiki::filter($params{page}, $params{text}));
+               IkiWiki::filter($params{page}, $params{destpage}, $params{text}));
        
        my $id=genid($params{page}, $params{id});
 
@@ -106,7 +112,10 @@ sub format (@) { #{{{
 
        if ($params{content}=~s!(<div class="toggleable" id="[^"]+">)</div>!$1!g) {
                $params{content}=~s/<div class="toggleableend">//g;
-               $params{content}=~s!^<\/body>!$javascript</body>!m;
+               if (! ($params{content}=~s!^<\/body>!$javascript</body>!m)) {
+                       # no </body> tag, probably in preview mode
+                       $params{content}.=$javascript;
+               }
        }
        return $params{content};
 } # }}}