hook(type => "getsetup", id => "po", call => \&getsetup);
hook(type => "checkconfig", id => "po", call => \&checkconfig);
hook(type => "needsbuild", id => "po", call => \&needsbuild);
- hook(type => "scan", id => "po", call => \&scan, last =>1);
+ hook(type => "scan", id => "po", call => \&scan, last => 1);
hook(type => "filter", id => "po", call => \&filter);
hook(type => "htmlize", id => "po", call => \&htmlize);
hook(type => "pagetemplate", id => "po", call => \&pagetemplate, last => 1);
! defined $config{po_link_to}) {
$config{po_link_to}='default';
}
- elsif (! grep {
- $config{po_link_to} eq $_
- } ('default', 'current', 'negotiated')) {
+ elsif ($config{po_link_to} !~ /^(default|current|negotiated)$/) {
warn(sprintf(gettext('%s is not a valid value for po_link_to, falling back to po_link_to=default'),
$config{po_link_to}));
$config{po_link_to}='default';
my $page=$params{page};
my $content=$params{content};
- return unless UNIVERSAL::can("IkiWiki::Plugin::link", "import");
-
if (istranslation($page)) {
foreach my $destpage (@{$links{$page}}) {
if (istranslatable($destpage)) {
$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
} # }}}
# Add the renamed page translations to the list of to-be-renamed pages.
-sub renamepages(@) {
+sub renamepages (@) {
my %params = @_;
my %torename = %{$params{torename}};
return @ret;
}
-sub mydelete(@) {
+sub mydelete (@) {
my @deleted=@_;
map { deletetranslations($_) } grep istranslatablefile($_), @deleted;
}
-sub change(@) {
+sub change (@) {
my @rendered=@_;
# All meta titles are first extracted at scan time, i.e. before we turn
# PO files breaks the meta plugin's parsing enough to save ugly titles
# to %pagestate at this time.
#
- # Then, at render time, every page's passes on row through the Great
+ # Then, at render time, every page passes in turn through the Great
# Rendering Chain (filter->preprocess->linkify->htmlize), and the meta
# plugin's preprocess hook is this time in a position to correctly
# extract the titles from slave pages.
#
- # This is, unfortunately, too late: if the page A, linking to the page B,
- # is rendered before B, it will display the wrongly-extracted meta title
- # as the link text to B.
+ # This is, unfortunately, too late: if the page A, linking to the page
+ # B, is rendered before B, it will display the wrongly-extracted meta
+ # title as the link text to B.
#
# On the one hand, such a corner case only happens on rebuild: on
# refresh, every rendered page is fixed to contain correct meta titles.
$doc->{TT}{file_in_charset} = 'utf-8';
$doc->{TT}{file_out_charset} = 'utf-8';
$doc->read($masterfile);
- # let's cheat a bit to force porefs option to be passed to Locale::Po4a::Po;
- # this is undocument use of internal Locale::Po4a::TransTractor's data,
- # compulsory since this module prevents us from using the porefs option.
+ # let's cheat a bit to force porefs option to be passed to
+ # Locale::Po4a::Po; this is undocument use of internal
+ # Locale::Po4a::TransTractor's data, compulsory since this module
+ # prevents us from using the porefs option.
$doc->{TT}{po_out}=Locale::Po4a::Po->new({ 'porefs' => 'none' });
$doc->{TT}{po_out}->set_charset('utf-8');
# do the actual work