summaryrefslogtreecommitdiff
path: root/IkiWiki
diff options
context:
space:
mode:
Diffstat (limited to 'IkiWiki')
-rw-r--r--IkiWiki/CGI.pm12
-rw-r--r--IkiWiki/Plugin/toc.pm4
-rw-r--r--IkiWiki/Plugin/toggle.pm5
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};
} # }}}