po plugin: replace tweakurlpath hook with a wrapper function

Signed-off-by: intrigeri <intrigeri@boum.org>
master
intrigeri 2008-11-02 18:29:23 +01:00
parent 7c173aca3e
commit 307d11541a
1 changed files with 13 additions and 7 deletions

View File

@ -18,13 +18,18 @@ use Memoize;
my %translations;
our %filtered;
my $origbestlink=\&bestlink;
## FIXME: makes some test cases cry once every two tries; this may be
## related to the artificial way the testsuite is run, or not.
# memoize("istranslatable");
memoize("_istranslation");
memoize("percenttranslated");
# backup references to subs that will be overriden
my %origsubs;
$origsubs{'bestlink'}=\&IkiWiki::bestlink;
$origsubs{'beautify_urlpath'}=\&IkiWiki::beautify_urlpath;
sub import {
hook(type => "getsetup", id => "po", call => \&getsetup);
hook(type => "checkconfig", id => "po", call => \&checkconfig);
@ -35,6 +40,7 @@ sub import {
hook(type => "htmlize", id => "po", call => \&htmlize);
hook(type => "pagetemplate", id => "po", call => \&pagetemplate);
inject(name => "IkiWiki::bestlink", call => \&mybestlink);
inject(name => "IkiWiki::beautify_urlpath", call => \&mybeautify_urlpath);
}
sub getsetup () { #{{{
@ -238,19 +244,19 @@ sub targetpage (@) { #{{{
return;
} #}}}
sub tweakurlpath ($) { #{{{
my %params = @_;
my $url=$params{url};
sub mybeautify_urlpath ($) { #{{{
my $url=shift;
my $res=$origsubs{'beautify_urlpath'}->($url);
if ($config{po_link_to} eq "negotiated") {
$url =~ s!/index.$config{po_master_language}{code}.$config{htmlext}$!/!;
$res =~ s!/index.$config{po_master_language}{code}.$config{htmlext}$!/!;
}
return $url;
return $res;
} #}}}
sub mybestlink ($$) { #{{{
my $page=shift;
my $link=shift;
my $res=$origbestlink->($page, $link);
my $res=$origsubs{'bestlink'}->($page, $link);
if (length $res) {
if ($config{po_link_to} eq "current"
&& istranslatable($res)