call format hooks when generating page previews
* toc: Revert change in 2.45 that made it run at sanitize time. This breaks use of toc in a sidebar. * Call format hooks when generating page previews, thus fixing toc display there, as well as fixing inlins to again display in page previews, since it's started using format hooks. This also allows several other things, like embed, that use format hooks, to work during page preview time. * Format hooks should not rely on getting an entire html document, as they will only get the body during page preview. * toggle: Deal with preview mode when adding javascript.master
parent
f8fe1247bd
commit
b66f9a1981
|
@ -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};
|
||||
|
|
|
@ -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};
|
||||
|
||||
|
|
|
@ -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};
|
||||
} # }}}
|
||||
|
|
|
@ -22,6 +22,15 @@ ikiwiki (2.51) UNRELEASED; urgency=low
|
|||
* txt: New plugin, contributed by Gabriel McManus.
|
||||
* smiley: Generate links relative to the destpage. (Fixes a reversion from
|
||||
2.41.)
|
||||
* toc: Revert change in 2.45 that made it run at sanitize time. This breaks
|
||||
use of toc in a sidebar.
|
||||
* Call format hooks when generating page previews, thus fixing toc display
|
||||
there, as well as fixing inlins to again display in page previews, since
|
||||
it's started using format hooks. This also allows several other things,
|
||||
like embed, that use format hooks, to work during page preview time.
|
||||
* Format hooks should not rely on getting an entire html document, as they
|
||||
will only get the body during page preview.
|
||||
* toggle: Deal with preview mode when adding javascript.
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Sun, 15 Jun 2008 15:03:33 -0400
|
||||
|
||||
|
|
|
@ -13,4 +13,9 @@ I can't think of a way between these that works in all cases. Maybe call
|
|||
the format hooks when generating a page preview? Maybe add an option to toc
|
||||
to make it embeddable in the sidebar?
|
||||
|
||||
Hmm, I think I need to call format during preview. Another case is that
|
||||
inline uses a format hook to insert the inlined content..
|
||||
|
||||
--[[Joey]]
|
||||
|
||||
[[done]]
|
||||
|
|
Binary file not shown.
|
@ -220,7 +220,9 @@ and should return the sanitized content.
|
|||
|
||||
The difference between format and sanitize is that sanitize only acts on
|
||||
the page body, while format can modify the entire html page including the
|
||||
header and footer inserted by ikiwiki, the html document type, etc.
|
||||
header and footer inserted by ikiwiki, the html document type, etc. (It
|
||||
should not rely on always being passed the entire page, as it won't be
|
||||
when the page is being previewed.)
|
||||
|
||||
The function is passed named parameters: "page" and "content", and
|
||||
should return the formatted content.
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2008-06-13 15:17-0400\n"
|
||||
"POT-Creation-Date: 2008-06-28 23:05-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -24,7 +24,7 @@ msgstr ""
|
|||
msgid "login failed, perhaps you need to turn on cookies?"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/CGI.pm:190 ../IkiWiki/CGI.pm:521
|
||||
#: ../IkiWiki/CGI.pm:190 ../IkiWiki/CGI.pm:527
|
||||
msgid "Your login session has expired."
|
||||
msgstr ""
|
||||
|
||||
|
@ -49,25 +49,25 @@ msgstr ""
|
|||
msgid "%s is not an editable page"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/CGI.pm:432 ../IkiWiki/Plugin/brokenlinks.pm:24
|
||||
#: ../IkiWiki/CGI.pm:438 ../IkiWiki/Plugin/brokenlinks.pm:24
|
||||
#: ../IkiWiki/Plugin/inline.pm:266 ../IkiWiki/Plugin/opendiscussion.pm:17
|
||||
#: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:95
|
||||
#: ../IkiWiki/Render.pm:162
|
||||
msgid "discussion"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/CGI.pm:488
|
||||
#: ../IkiWiki/CGI.pm:494
|
||||
#, perl-format
|
||||
msgid "creating %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/CGI.pm:506 ../IkiWiki/CGI.pm:534 ../IkiWiki/CGI.pm:544
|
||||
#: ../IkiWiki/CGI.pm:578 ../IkiWiki/CGI.pm:623
|
||||
#: ../IkiWiki/CGI.pm:512 ../IkiWiki/CGI.pm:540 ../IkiWiki/CGI.pm:550
|
||||
#: ../IkiWiki/CGI.pm:584 ../IkiWiki/CGI.pm:629
|
||||
#, perl-format
|
||||
msgid "editing %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/CGI.pm:716
|
||||
#: ../IkiWiki/CGI.pm:722
|
||||
msgid "You are banned."
|
||||
msgstr ""
|
||||
|
||||
|
@ -84,62 +84,62 @@ msgstr ""
|
|||
msgid "missing %s parameter"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:161
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:168
|
||||
msgid "new feed"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:175
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:182
|
||||
msgid "posts"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:177
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:184
|
||||
msgid "new"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:340
|
||||
#, perl-format
|
||||
msgid "expiring %s (%s days old)"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:347
|
||||
#, perl-format
|
||||
msgid "expiring %s (%s days old)"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:354
|
||||
#, perl-format
|
||||
msgid "expiring %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:374
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:381
|
||||
#, perl-format
|
||||
msgid "processed ok at %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:378
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:385
|
||||
#, perl-format
|
||||
msgid "checking feed %s ..."
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:383
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:390
|
||||
#, perl-format
|
||||
msgid "could not find feed at %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:398
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:405
|
||||
msgid "feed not found"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:409
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:416
|
||||
#, perl-format
|
||||
msgid "(invalid UTF-8 stripped from feed)"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:415
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:422
|
||||
#, perl-format
|
||||
msgid "(feed entities escaped)"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:421
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:428
|
||||
msgid "feed crashed XML::Feed!"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:495
|
||||
#: ../IkiWiki/Plugin/aggregate.pm:502
|
||||
#, perl-format
|
||||
msgid "creating new page %s"
|
||||
msgstr ""
|
||||
|
@ -285,15 +285,15 @@ msgstr ""
|
|||
msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/Plugin/meta.pm:132
|
||||
#: ../IkiWiki/Plugin/meta.pm:137
|
||||
msgid "stylesheet not found"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/Plugin/meta.pm:166
|
||||
#: ../IkiWiki/Plugin/meta.pm:171
|
||||
msgid "redir page not found"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/Plugin/meta.pm:179
|
||||
#: ../IkiWiki/Plugin/meta.pm:184
|
||||
msgid "redir cycle is not allowed"
|
||||
msgstr ""
|
||||
|
||||
|
|
Loading…
Reference in New Issue