From: intrigeri <intrigeri@boum.org>
Date: Tue, 4 Nov 2008 19:05:21 +0000 (+0100)
Subject: po plugin: remove broken parentlinks for home page's translations
X-Git-Tag: 3.15~406^2~2
X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/commitdiff_plain/bc5b875de85419d38688b47e0d40ff808f0ebd86

po plugin: remove broken parentlinks for home page's translations

Signed-off-by: intrigeri <intrigeri@boum.org>
---

diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm
index cc8e9b2ed..a5bf4fb54 100644
--- a/IkiWiki/Plugin/po.pm
+++ b/IkiWiki/Plugin/po.pm
@@ -38,7 +38,7 @@ sub import {
 	hook(type => "needsbuild", id => "po", call => \&needsbuild);
 	hook(type => "filter", id => "po", call => \&filter);
 	hook(type => "htmlize", id => "po", call => \&htmlize);
-	hook(type => "pagetemplate", id => "po", call => \&pagetemplate);
+	hook(type => "pagetemplate", id => "po", call => \&pagetemplate, last => 1);
 	hook(type => "editcontent", id => "po", call => \&editcontent);
 	inject(name => "IkiWiki::bestlink", call => \&mybestlink);
 	inject(name => "IkiWiki::beautify_urlpath", call => \&mybeautify_urlpath);
@@ -398,9 +398,10 @@ sub otherlanguages ($) { #{{{
 
 sub pagetemplate (@) { #{{{
 	my %params=@_;
-        my $page=$params{page};
-        my $destpage=$params{destpage};
-        my $template=$params{template};
+	my $page=$params{page};
+	my $destpage=$params{destpage};
+	my $template=$params{template};
+	my ($masterpage, $lang) = ($page =~ /(.*)[.]([a-z]{2})$/) if istranslation($page);
 
 	if (istranslation($page) && $template->query(name => "percenttranslated")) {
 		$template->param(percenttranslated => percenttranslated($page));
@@ -419,7 +420,6 @@ sub pagetemplate (@) { #{{{
 			}
 		}
 		elsif (istranslation($page)) {
-			my ($masterpage, $curlang) = ($page =~ /(.*)[.]([a-z]{2})$/);
 			add_depends($page, $masterpage);
 			foreach my $translation (values %{$translations{$masterpage}}) {
 				add_depends($page, $translation);
@@ -434,7 +434,6 @@ sub pagetemplate (@) { #{{{
 	# prevent future breakage when ikiwiki internals change.
 	# Known limitations are preferred to future random bugs.
 	if ($template->param('discussionlink') && istranslation($page)) {
-		my ($masterpage, $lang) = ($page =~ /(.*)[.]([a-z]{2})$/);
 		$template->param('discussionlink' => htmllink(
 							$page,
 							$destpage,
@@ -444,6 +443,12 @@ sub pagetemplate (@) { #{{{
 							linktext => gettext("Discussion"),
 							));
 	}
+	# remove broken parentlink to ./index.html on home page's translations
+	if ($template->param('parentlinks')
+	    && istranslation($page)
+	    && $masterpage eq "index") {
+		$template->param('parentlinks' => []);
+	}
 } # }}}
 
 sub editcontent () { #{{{
diff --git a/doc/plugins/po.mdwn b/doc/plugins/po.mdwn
index 6aa63b429..61ed9e107 100644
--- a/doc/plugins/po.mdwn
+++ b/doc/plugins/po.mdwn
@@ -259,13 +259,6 @@ be fixed by something like [[todo/using_meta_titles_for_parentlinks]].
 
 Which configuration settings are safe enough for websetup?
 
-### parentlinks
-
-When the wiki home page is translatable, the parentlinks plugin sets
-`./index.html` as its translations' single parent link. Ideally, the
-home page's translations should get no parent link at all, just like
-the version written in the master language.
-
 ### backlinks
 
 If a given translatable `sourcepage.mdwn` links to \[[destpage]],