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,
|
session => $session,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
$form->tmpl_param("page_preview",
|
my $preview=htmlize($page, $page, $type,
|
||||||
htmlize($page, $page, $type,
|
|
||||||
linkify($page, $page,
|
linkify($page, $page,
|
||||||
preprocess($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) {
|
if ($new) {
|
||||||
delete $pagesources{$page};
|
delete $pagesources{$page};
|
||||||
|
|
|
@ -9,7 +9,7 @@ use HTML::Parser;
|
||||||
|
|
||||||
sub import { #{{{
|
sub import { #{{{
|
||||||
hook(type => "preprocess", id => "toc", call => \&preprocess);
|
hook(type => "preprocess", id => "toc", call => \&preprocess);
|
||||||
hook(type => "sanitize", id => "toc", call => \&sanitize);
|
hook(type => "format", id => "toc", call => \&format);
|
||||||
} # }}}
|
} # }}}
|
||||||
|
|
||||||
my %tocpages;
|
my %tocpages;
|
||||||
|
@ -33,7 +33,7 @@ sub preprocess (@) { #{{{
|
||||||
}
|
}
|
||||||
} # }}}
|
} # }}}
|
||||||
|
|
||||||
sub sanitize (@) { #{{{
|
sub format (@) { #{{{
|
||||||
my %params=@_;
|
my %params=@_;
|
||||||
my $content=$params{content};
|
my $content=$params{content};
|
||||||
|
|
||||||
|
|
|
@ -112,7 +112,10 @@ sub format (@) { #{{{
|
||||||
|
|
||||||
if ($params{content}=~s!(<div class="toggleable" id="[^"]+">)</div>!$1!g) {
|
if ($params{content}=~s!(<div class="toggleable" id="[^"]+">)</div>!$1!g) {
|
||||||
$params{content}=~s/<div class="toggleableend">//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};
|
return $params{content};
|
||||||
} # }}}
|
} # }}}
|
||||||
|
|
|
@ -22,6 +22,15 @@ ikiwiki (2.51) UNRELEASED; urgency=low
|
||||||
* txt: New plugin, contributed by Gabriel McManus.
|
* txt: New plugin, contributed by Gabriel McManus.
|
||||||
* smiley: Generate links relative to the destpage. (Fixes a reversion from
|
* smiley: Generate links relative to the destpage. (Fixes a reversion from
|
||||||
2.41.)
|
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
|
-- 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
|
the format hooks when generating a page preview? Maybe add an option to toc
|
||||||
to make it embeddable in the sidebar?
|
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]]
|
--[[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 difference between format and sanitize is that sanitize only acts on
|
||||||
the page body, while format can modify the entire html page including the
|
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
|
The function is passed named parameters: "page" and "content", and
|
||||||
should return the formatted content.
|
should return the formatted content.
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \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"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -24,7 +24,7 @@ msgstr ""
|
||||||
msgid "login failed, perhaps you need to turn on cookies?"
|
msgid "login failed, perhaps you need to turn on cookies?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../IkiWiki/CGI.pm:190 ../IkiWiki/CGI.pm:521
|
#: ../IkiWiki/CGI.pm:190 ../IkiWiki/CGI.pm:527
|
||||||
msgid "Your login session has expired."
|
msgid "Your login session has expired."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -49,25 +49,25 @@ msgstr ""
|
||||||
msgid "%s is not an editable page"
|
msgid "%s is not an editable page"
|
||||||
msgstr ""
|
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/inline.pm:266 ../IkiWiki/Plugin/opendiscussion.pm:17
|
||||||
#: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:95
|
#: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:95
|
||||||
#: ../IkiWiki/Render.pm:162
|
#: ../IkiWiki/Render.pm:162
|
||||||
msgid "discussion"
|
msgid "discussion"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../IkiWiki/CGI.pm:488
|
#: ../IkiWiki/CGI.pm:494
|
||||||
#, perl-format
|
#, perl-format
|
||||||
msgid "creating %s"
|
msgid "creating %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../IkiWiki/CGI.pm:506 ../IkiWiki/CGI.pm:534 ../IkiWiki/CGI.pm:544
|
#: ../IkiWiki/CGI.pm:512 ../IkiWiki/CGI.pm:540 ../IkiWiki/CGI.pm:550
|
||||||
#: ../IkiWiki/CGI.pm:578 ../IkiWiki/CGI.pm:623
|
#: ../IkiWiki/CGI.pm:584 ../IkiWiki/CGI.pm:629
|
||||||
#, perl-format
|
#, perl-format
|
||||||
msgid "editing %s"
|
msgid "editing %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../IkiWiki/CGI.pm:716
|
#: ../IkiWiki/CGI.pm:722
|
||||||
msgid "You are banned."
|
msgid "You are banned."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -84,62 +84,62 @@ msgstr ""
|
||||||
msgid "missing %s parameter"
|
msgid "missing %s parameter"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../IkiWiki/Plugin/aggregate.pm:161
|
#: ../IkiWiki/Plugin/aggregate.pm:168
|
||||||
msgid "new feed"
|
msgid "new feed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../IkiWiki/Plugin/aggregate.pm:175
|
#: ../IkiWiki/Plugin/aggregate.pm:182
|
||||||
msgid "posts"
|
msgid "posts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../IkiWiki/Plugin/aggregate.pm:177
|
#: ../IkiWiki/Plugin/aggregate.pm:184
|
||||||
msgid "new"
|
msgid "new"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../IkiWiki/Plugin/aggregate.pm:340
|
|
||||||
#, perl-format
|
|
||||||
msgid "expiring %s (%s days old)"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ../IkiWiki/Plugin/aggregate.pm:347
|
#: ../IkiWiki/Plugin/aggregate.pm:347
|
||||||
#, perl-format
|
#, perl-format
|
||||||
|
msgid "expiring %s (%s days old)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ../IkiWiki/Plugin/aggregate.pm:354
|
||||||
|
#, perl-format
|
||||||
msgid "expiring %s"
|
msgid "expiring %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../IkiWiki/Plugin/aggregate.pm:374
|
#: ../IkiWiki/Plugin/aggregate.pm:381
|
||||||
#, perl-format
|
#, perl-format
|
||||||
msgid "processed ok at %s"
|
msgid "processed ok at %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../IkiWiki/Plugin/aggregate.pm:378
|
#: ../IkiWiki/Plugin/aggregate.pm:385
|
||||||
#, perl-format
|
#, perl-format
|
||||||
msgid "checking feed %s ..."
|
msgid "checking feed %s ..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../IkiWiki/Plugin/aggregate.pm:383
|
#: ../IkiWiki/Plugin/aggregate.pm:390
|
||||||
#, perl-format
|
#, perl-format
|
||||||
msgid "could not find feed at %s"
|
msgid "could not find feed at %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../IkiWiki/Plugin/aggregate.pm:398
|
#: ../IkiWiki/Plugin/aggregate.pm:405
|
||||||
msgid "feed not found"
|
msgid "feed not found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../IkiWiki/Plugin/aggregate.pm:409
|
#: ../IkiWiki/Plugin/aggregate.pm:416
|
||||||
#, perl-format
|
#, perl-format
|
||||||
msgid "(invalid UTF-8 stripped from feed)"
|
msgid "(invalid UTF-8 stripped from feed)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../IkiWiki/Plugin/aggregate.pm:415
|
#: ../IkiWiki/Plugin/aggregate.pm:422
|
||||||
#, perl-format
|
#, perl-format
|
||||||
msgid "(feed entities escaped)"
|
msgid "(feed entities escaped)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../IkiWiki/Plugin/aggregate.pm:421
|
#: ../IkiWiki/Plugin/aggregate.pm:428
|
||||||
msgid "feed crashed XML::Feed!"
|
msgid "feed crashed XML::Feed!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../IkiWiki/Plugin/aggregate.pm:495
|
#: ../IkiWiki/Plugin/aggregate.pm:502
|
||||||
#, perl-format
|
#, perl-format
|
||||||
msgid "creating new page %s"
|
msgid "creating new page %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -285,15 +285,15 @@ msgstr ""
|
||||||
msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)"
|
msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../IkiWiki/Plugin/meta.pm:132
|
#: ../IkiWiki/Plugin/meta.pm:137
|
||||||
msgid "stylesheet not found"
|
msgid "stylesheet not found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../IkiWiki/Plugin/meta.pm:166
|
#: ../IkiWiki/Plugin/meta.pm:171
|
||||||
msgid "redir page not found"
|
msgid "redir page not found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../IkiWiki/Plugin/meta.pm:179
|
#: ../IkiWiki/Plugin/meta.pm:184
|
||||||
msgid "redir cycle is not allowed"
|
msgid "redir cycle is not allowed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue