From 830c9e59b2c4d5c90e4316d8e81558e1aeb132f2 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 13 Aug 2009 21:41:33 -0400 Subject: [PATCH] Add discussionpage configuration setting By adding this setting, we get both more configurability, and a minor optimisation too, since gettext does not need to be called continually to get the Discussion value. --- IkiWiki.pm | 7 +++++++ IkiWiki/Plugin/brokenlinks.pm | 3 +-- IkiWiki/Plugin/editpage.pm | 5 +++-- IkiWiki/Plugin/inline.pm | 9 +++------ IkiWiki/Plugin/opendiscussion.pm | 3 +-- IkiWiki/Plugin/orphans.pm | 3 +-- IkiWiki/Render.pm | 9 ++++----- debian/changelog | 2 ++ 8 files changed, 22 insertions(+), 19 deletions(-) diff --git a/IkiWiki.pm b/IkiWiki.pm index a11b330f2..b47da966e 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -220,6 +220,13 @@ sub getsetup () { safe => 1, rebuild => 1, }, + discussionpage => { + type => "string", + default => gettext("Discussion"), + description => "name of Discussion pages", + safe => 1, + rebuild => 1, + }, sslcookie => { type => "boolean", default => 0, diff --git a/IkiWiki/Plugin/brokenlinks.pm b/IkiWiki/Plugin/brokenlinks.pm index f8d44892b..5ad4c917c 100644 --- a/IkiWiki/Plugin/brokenlinks.pm +++ b/IkiWiki/Plugin/brokenlinks.pm @@ -28,14 +28,13 @@ sub preprocess (@) { add_depends($params{page}, $params{pages}); my %broken; - my $discussion=gettext("Discussion"); foreach my $page (pagespec_match_list([keys %links], $params{pages}, location => $params{page})) { my %seen; foreach my $link (@{$links{$page}}) { next if $seen{$link}; $seen{$link}=1; - next if $link =~ /.*\/\Q$discussion\E/i && $config{discussion}; + next if $link =~ /.*\/\Q$config{discussionpage}\E/i && $config{discussion}; my $bestlink=bestlink($page, $link); next if length $bestlink; push @{$broken{$link}}, $page; diff --git a/IkiWiki/Plugin/editpage.pm b/IkiWiki/Plugin/editpage.pm index 467cd9ed5..fca970c60 100644 --- a/IkiWiki/Plugin/editpage.pm +++ b/IkiWiki/Plugin/editpage.pm @@ -229,8 +229,9 @@ sub cgi_editpage ($$) { my $dir=$from."/"; $dir=~s![^/]+/+$!!; - if ((defined $form->field('subpage') && length $form->field('subpage')) || - $page eq lc(gettext('Discussion'))) { + if ((defined $form->field('subpage') && + length $form->field('subpage')) || + $page eq lc($config{discussionpage})) { $best_loc="$from/$page"; } else { diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm index 2fbb45e02..704fa711d 100644 --- a/IkiWiki/Plugin/inline.pm +++ b/IkiWiki/Plugin/inline.pm @@ -348,9 +348,6 @@ sub preprocess_inline (@) { } my $template=HTML::Template->new(@params) unless $raw; - my $discussionlink=lc(gettext("Discussion")) - if $config{discussion}; - foreach my $page (@list) { my $file = $pagesources{$page}; my $type = pagetype($file); @@ -374,14 +371,14 @@ sub preprocess_inline (@) { my $file = $pagesources{$page}; my $type = pagetype($file); if ($config{discussion}) { - if ($page !~ /.*\/\Q$discussionlink\E$/ && + if ($page !~ /.*\/\Q$config{discussionpage}\E$/ && (length $config{cgiurl} || - exists $links{$page."/".$discussionlink})) { + exists $links{$page."/".$config{discussionpage}})) { $template->param(have_actions => 1); $template->param(discussionlink => htmllink($page, $params{destpage}, - gettext("Discussion"), + $config{discussionpage}, noimageinline => 1, forcesubpage => 1)); } diff --git a/IkiWiki/Plugin/opendiscussion.pm b/IkiWiki/Plugin/opendiscussion.pm index 60b193eca..1bec4b013 100644 --- a/IkiWiki/Plugin/opendiscussion.pm +++ b/IkiWiki/Plugin/opendiscussion.pm @@ -23,8 +23,7 @@ sub canedit ($$) { my $cgi=shift; my $session=shift; - my $discussion=lc(gettext("Discussion")); - return "" if $page=~/(\/|^)\Q$discussion\E$/; + return "" if $page=~/(\/|^)\Q$config{discussionpage}\E$/; return undef; } diff --git a/IkiWiki/Plugin/orphans.pm b/IkiWiki/Plugin/orphans.pm index 7c938ef74..02f5d2524 100644 --- a/IkiWiki/Plugin/orphans.pm +++ b/IkiWiki/Plugin/orphans.pm @@ -34,7 +34,6 @@ sub preprocess (@) { } my @orphans; - my $discussion=lc(gettext("Discussion")); foreach my $page (pagespec_match_list( [ grep { ! $linkedto{$_} && $_ ne 'index' } keys %pagesources ], @@ -43,7 +42,7 @@ sub preprocess (@) { # indirectly linked to a page via that page's backlinks. next if grep { length $_ && - ($_ !~ /\/\Q$discussion\E$/i || ! $config{discussion}) && + ($_ !~ /\/\Q$config{discussionpage}\E$/i || ! $config{discussion}) && bestlink($page, $_) !~ /^(\Q$page\E|)$/ } @{$links{$page}}; push @orphans, $page; diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index fc8f287ce..d5e81f1b9 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -83,11 +83,10 @@ sub genpage ($$) { $actions++; } if ($config{discussion}) { - my $discussionlink=lc(gettext("Discussion")); - if ($page !~ /.*\/\Q$discussionlink\E$/ && + if ($page !~ /.*\/\Q$config{discussionpage}\E$/ && (length $config{cgiurl} || - exists $links{$page."/".$discussionlink})) { - $template->param(discussionlink => htmllink($page, $page, gettext("Discussion"), noimageinline => 1, forcesubpage => 1)); + exists $links{$page."/".$config{discussionpage}})) { + $template->param(discussionlink => htmllink($page, $page, $config{discussionpage}, noimageinline => 1, forcesubpage => 1)); $actions++; } } @@ -153,7 +152,7 @@ sub scan ($) { if ($config{discussion}) { # Discussion links are a special case since they're # not in the text of the page, but on its template. - $links{$page}=[ $page."/".lc(gettext("Discussion")) ]; + $links{$page}=[ $page."/".lc($config{discussionpage}) ]; } else { $links{$page}=[]; diff --git a/debian/changelog b/debian/changelog index ed7854e8a..5e5149927 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,8 @@ ikiwiki (3.141593) UNRELEASED; urgency=low the old version, but continue. Closes: #541205 * inline: Avoid use of my $_ as it fails with older perls. Closes: #541215 + * Add discussionpage configuration setting. + * Small optimisations. -- Joey Hess Wed, 12 Aug 2009 12:25:30 -0400 -- 2.45.0