aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2011-06-29 16:38:32 -0400
committerJoey Hess <joey@kitenet.net>2011-06-29 16:38:32 -0400
commit25b01f94045eaa262587fcd18e8525eed9c18157 (patch)
treef63e437973ee35aebd9f511c8e18c80ace9d8d4f /IkiWiki
parent9bae303ec42aaa7e6c1297505d296ebada185423 (diff)
downloadikiwiki-25b01f94045eaa262587fcd18e8525eed9c18157.tar
ikiwiki-25b01f94045eaa262587fcd18e8525eed9c18157.tar.gz
Preserve mixed case in page creation links, and when creating a page whose title is mixed case, allow selecting between the mixed case and all lower-case names.
Diffstat (limited to 'IkiWiki')
-rw-r--r--IkiWiki/Plugin/editpage.pm11
1 files changed, 9 insertions, 2 deletions
diff --git a/IkiWiki/Plugin/editpage.pm b/IkiWiki/Plugin/editpage.pm
index 3d094c263..a385ed839 100644
--- a/IkiWiki/Plugin/editpage.pm
+++ b/IkiWiki/Plugin/editpage.pm
@@ -227,6 +227,8 @@ sub cgi_editpage ($$) {
$absolute ||
$form->submitted) {
@page_locs=$best_loc=$page;
+ unshift @page_locs, lc($page)
+ if ! $form->submitted && lc($page) ne $page;
}
else {
my $dir=$from."/";
@@ -241,13 +243,18 @@ sub cgi_editpage ($$) {
$best_loc=$dir.$page;
}
+ my $mixedcase=lc($page) ne $page;
+
+ push @page_locs, $dir.lc($page) if $mixedcase;
push @page_locs, $dir.$page;
- push @page_locs, "$from/$page";
+ push @page_locs, $from."/".lc($page) if $mixedcase;
+ push @page_locs, $from."/".$page;
while (length $dir) {
$dir=~s![^/]+/+$!!;
+ push @page_locs, $dir.lc($page) if $mixedcase;
push @page_locs, $dir.$page;
}
-
+
my $userpage=IkiWiki::userpage($page);
push @page_locs, $userpage
if ! grep { $_ eq $userpage } @page_locs;