diff options
author | intrigeri <intrigeri@boum.org> | 2009-06-06 14:03:40 +0200 |
---|---|---|
committer | intrigeri <intrigeri@boum.org> | 2009-06-06 14:03:40 +0200 |
commit | 86edd73d169600875a10a635ef8df4a644545b0d (patch) | |
tree | 1216eb826f2da7a1c11d84395f25468d1acfa69c /IkiWiki/Plugin/format.pm | |
parent | 17b3d73f6e65d6a754633902b0dd4716d53b03a9 (diff) | |
parent | e40d2a6b2b1bdf677f11cc4a71595acf609d1e75 (diff) |
Merge commit 'upstream/master' into pub/po
Conflicts:
debian/changelog
debian/control
Signed-off-by: intrigeri <intrigeri@boum.org>
Diffstat (limited to 'IkiWiki/Plugin/format.pm')
-rw-r--r-- | IkiWiki/Plugin/format.pm | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/IkiWiki/Plugin/format.pm b/IkiWiki/Plugin/format.pm index bbe3aa9fe..1513cbed7 100644 --- a/IkiWiki/Plugin/format.pm +++ b/IkiWiki/Plugin/format.pm @@ -10,21 +10,33 @@ sub import { } sub preprocess (@) { - my $format=$_[0]; - shift; shift; - my $text=$_[0]; - shift; shift; my %params=@_; + my $format=shift; + shift; + my $text=IkiWiki::preprocess($params{page}, $params{destpage}, shift); + shift; if (! defined $format || ! defined $text) { error(gettext("must specify format and text")); } - elsif (! exists $IkiWiki::hooks{htmlize}{$format}) { - error(sprintf(gettext("unsupported page format %s"), $format)); + elsif (exists $IkiWiki::hooks{htmlize}{$format}) { + return IkiWiki::htmlize($params{page}, $params{destpage}, + $format, $text); } + else { + # Other plugins can register htmlizefallback + # hooks to add support for page types + # not suitable for htmlize. Try them until + # one succeeds. + my $ret; + IkiWiki::run_hooks(htmlizefallback => sub { + $ret=shift->($format, $text) + unless defined $ret; + }); + return $ret if defined $ret; - return IkiWiki::htmlize($params{page}, $params{destpage}, $format, - IkiWiki::preprocess($params{page}, $params{destpage}, $text)); + error(sprintf(gettext("unsupported page format %s"), $format)); + } } 1 |