X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/ca9e45c3ba2ad852123aeb8783eed07ed73ce00c..dcb52530910306891622bbaff9e039b52e83b0fc:/IkiWiki/Plugin/po.pm diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm index 6f716a91f..9a3df79ac 100644 --- a/IkiWiki/Plugin/po.pm +++ b/IkiWiki/Plugin/po.pm @@ -36,7 +36,6 @@ sub import { hook(type => "filter", id => "po", call => \&filter); hook(type => "htmlize", id => "po", call => \&htmlize); hook(type => "pagetemplate", id => "po", call => \&pagetemplate, last => 1); - hook(type => "postscan", id => "po", call => \&postscan); hook(type => "rename", id => "po", call => \&renamepages, first => 1); hook(type => "delete", id => "po", call => \&mydelete); hook(type => "change", id => "po", call => \&change); @@ -55,8 +54,6 @@ sub import { inject(name => "IkiWiki::targetpage", call => \&mytargetpage); $origsubs{'urlto'}=\&IkiWiki::urlto; inject(name => "IkiWiki::urlto", call => \&myurlto); - $origsubs{'nicepagetitle'}=\&IkiWiki::nicepagetitle; - inject(name => "IkiWiki::nicepagetitle", call => \&mynicepagetitle); $origsubs{'cgiurl'}=\&IkiWiki::cgiurl; inject(name => "IkiWiki::cgiurl", call => \&mycgiurl); } @@ -119,20 +116,6 @@ sub getsetup () { safe => 1, rebuild => 1, }, - po_translation_status_in_links => { - type => "boolean", - example => 1, - description => "display translation status in links to translations", - safe => 1, - rebuild => 1, - }, - po_strictly_refresh_backlinks => { - type => "boolean", - example => 1, - description => "refresh a page when a backlinked page is changed (can hit performance)", - safe => 1, - rebuild => 1, - }, } sub checkconfig () { @@ -169,14 +152,6 @@ sub checkconfig () { warn(gettext('po_link_to=negotiated requires usedirs to be enabled, falling back to po_link_to=default')); $config{po_link_to}='default'; } - if (! exists $config{po_translation_status_in_links} || - ! defined $config{po_translation_status_in_links}) { - $config{po_translation_status_in_links}=1; - } - if (! exists $config{po_strictly_refresh_backlinks} || - ! defined $config{po_strictly_refresh_backlinks}) { - $config{po_strictly_refresh_backlinks}=1; - } push @{$config{wiki_file_prune_regexps}}, qr/\.pot$/; } @@ -316,42 +291,31 @@ sub pagetemplate (@) { } } # }}} -sub postscan (@) { - my %params = @_; - - return unless $config{po_strictly_refresh_backlinks}; - - my $page = $params{page}; - # backlinks involve back-dependencies, so that nicepagetitle effects, - # such as translation status displayed in links, are updated - use IkiWiki::Render; - map add_depends($page, $_), keys %{$IkiWiki::backlinks{$page}}; -} - # Add the renamed page translations to the list of to-be-renamed pages. -sub renamepages($$$) { - my ($torename, $cgi, $session) = (shift, shift, shift); +sub renamepages(@) { + my %params = @_; - # copy the initial array, so that we can iterate on it AND - # modify it at the same time, without iterating on the items we - # pushed on it ourselves - my @torename=@{$torename}; + my @torename = @{$params{torename}}; + my $session = $params{session}; # Save the page(s) the user asked to rename, so that our # canrename hook can tell the difference between: # - a translation being renamed as a consequence of its master page # being renamed # - a user trying to directly rename a translation - # This is why this hook has to be run first, before @torename is modified - # by other plugins. - $session->param(po_orig_torename => [ @torename ]); + # This is why this hook has to be run first, before the list of pages + # to rename is modified by other plugins. + $session->param(po_orig_torename => \@torename); IkiWiki::cgi_savesession($session); + my @ret=@torename; + # iterate on @torename and push onto @ret, so that we don't iterate + # on the items we added ourselves foreach my $rename (@torename) { next unless istranslatable($rename->{src}); my %otherpages=%{otherlanguages($rename->{src})}; while (my ($lang, $otherpage) = each %otherpages) { - push @{$torename}, { + push @ret, { src => $otherpage, srcfile => $pagesources{$otherpage}, dest => otherlanguage($rename->{dest}, $lang), @@ -360,6 +324,7 @@ sub renamepages($$$) { }; } } + return @ret; } sub mydelete(@) { @@ -634,18 +599,6 @@ sub myurlto ($$;$) { } } -sub mynicepagetitle ($;$) { - my ($page, $unescaped) = (shift, shift); - - my $res = $origsubs{'nicepagetitle'}->($page, $unescaped); - return $res unless istranslation($page); - return $res unless $config{po_translation_status_in_links}; - my @caller = caller(1); - return $res if (exists $caller[3] && defined $caller[3] - && $caller[3] eq "IkiWiki::Plugin::parentlinks::parentlinks"); - return $res.' ('.percenttranslated($page).' %)'; -} - sub mycgiurl (@) { my %params=@_;