From: intrigeri Date: Wed, 3 Jun 2009 16:30:00 +0000 (+0200) Subject: po: better discussion link logic X-Git-Tag: 3.15~185 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=091f11be76991c3975c74d261ab4a065845ba8aa;p=ikiwiki.git po: better discussion link logic Signed-off-by: intrigeri --- diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm index d26c4ab4e..cdb9271e4 100644 --- a/IkiWiki/Plugin/po.pm +++ b/IkiWiki/Plugin/po.pm @@ -260,22 +260,20 @@ sub pagetemplate (@) { $template->param(otherlanguages => [otherlanguagesloop($page)]); map add_depends($page, $_), (values %{otherlanguages($page)}); } - # Rely on IkiWiki::Render's genpage() to decide wether - # a discussion link should appear on $page; this is not - # totally accurate, though: some broken links may be generated - # when cgiurl is disabled. - # This compromise avoids some code duplication, and will probably - # prevent future breakage when ikiwiki internals change. - # Known limitations are preferred to future random bugs. - if ($template->param('discussionlink') && istranslation($page)) { - $template->param('discussionlink' => htmllink( - $page, - $destpage, - $masterpage . '/' . gettext("Discussion"), - noimageinline => 1, - forcesubpage => 0, - linktext => gettext("Discussion"), + if ($config{discussion} && istranslation($page)) { + my $discussionlink=gettext("discussion"); + if ($page !~ /.*\/\Q$discussionlink\E$/i && + (length $config{cgiurl} || + exists $links{$masterpage."/".$discussionlink})) { + $template->param('discussionlink' => htmllink( + $page, + $destpage, + $masterpage . '/' . gettext("Discussion"), + noimageinline => 1, + forcesubpage => 0, + linktext => gettext("Discussion"), )); + } } # Remove broken parentlink to ./index.html on home page's translations. # It works because this hook has the "last" parameter set, to ensure it