diff options
Diffstat (limited to 'IkiWiki')
-rw-r--r-- | IkiWiki/CGI.pm | 12 | ||||
-rw-r--r-- | IkiWiki/Plugin/toc.pm | 4 | ||||
-rw-r--r-- | IkiWiki/Plugin/toggle.pm | 5 |
3 files changed, 15 insertions, 6 deletions
diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm index 8a294e887..015c9ae01 100644 --- a/IkiWiki/CGI.pm +++ b/IkiWiki/CGI.pm @@ -396,11 +396,17 @@ sub cgi_editpage ($$) { #{{{ session => $session, ); }); - $form->tmpl_param("page_preview", - htmlize($page, $page, $type, + my $preview=htmlize($page, $page, $type, linkify($page, $page, preprocess($page, $page, - filter($page, $page, $content), 0, 1)))); + filter($page, $page, $content), 0, 1))); + run_hooks(format => sub { + $preview=shift->( + page => $page, + content => $preview, + ); + }); + $form->tmpl_param("page_preview", $preview); if ($new) { delete $pagesources{$page}; diff --git a/IkiWiki/Plugin/toc.pm b/IkiWiki/Plugin/toc.pm index 5380dd965..639cae4a9 100644 --- a/IkiWiki/Plugin/toc.pm +++ b/IkiWiki/Plugin/toc.pm @@ -9,7 +9,7 @@ use HTML::Parser; sub import { #{{{ hook(type => "preprocess", id => "toc", call => \&preprocess); - hook(type => "sanitize", id => "toc", call => \&sanitize); + hook(type => "format", id => "toc", call => \&format); } # }}} my %tocpages; @@ -33,7 +33,7 @@ sub preprocess (@) { #{{{ } } # }}} -sub sanitize (@) { #{{{ +sub format (@) { #{{{ my %params=@_; my $content=$params{content}; diff --git a/IkiWiki/Plugin/toggle.pm b/IkiWiki/Plugin/toggle.pm index df5a2a737..8089443e0 100644 --- a/IkiWiki/Plugin/toggle.pm +++ b/IkiWiki/Plugin/toggle.pm @@ -112,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}; } # }}} |