my $unescaped=shift;
if ($unescaped) {
- $page=~s/__(\d+)__/chr($1)/eg;
+ $page=~s/(__(\d+)__|_)/$1 eq '_' ? ' ' : chr($2)/eg;
}
else {
- $page=~s/__(\d+)__/&#$1;/g;
+ $page=~s/(__(\d+)__|_)/$1 eq '_' ? ' ' : "&#$2;"/eg;
}
- $page=~y/_/ /;
return $page;
} #}}}
sub titlepage ($) { #{{{
my $title=shift;
- $title=~y/ /_/;
- $title=~s/([^-[:alnum:]_:+\/.])/"__".ord($1)."__"/eg;
+ $title=~s/([^-[:alnum:]:+\/.])/$1 eq ' ' ? '_' : "__".ord($1)."__"/eg;
return $title;
} #}}}
+ikiwiki (1.45) UNRELEASED; urgency=low
+
+ * Allow for underscores to appear in page titles, if encoded appropriately
+ (__95__) in filenames. Previously, all underscores were replaced with
+ spaces. Thanks, Enrico Zini for noticing that bug.
+
+ -- Joey Hess <joeyh@debian.org> Thu, 1 Mar 2007 19:30:36 -0500
+
ikiwiki (1.44) unstable; urgency=low
* Patch by Ben to fix validaton of atom feeds by fixing the category tags.
#!/usr/bin/perl
use warnings;
use strict;
-use Test::More tests => 6;
+use Test::More tests => 7;
BEGIN { use_ok("IkiWiki"); }
is(IkiWiki::pagetitle("foo_bar__33__baz"), "foo bar!baz");
is(IkiWiki::pagetitle("foo_bar__1234__baz"), "foo barӒbaz");
is(IkiWiki::pagetitle("foo_bar___33___baz"), "foo bar ! baz");
+is(IkiWiki::pagetitle("foo_bar___95___baz"), "foo bar _ baz");
#!/usr/bin/perl
use warnings;
use strict;
-use Test::More tests => 6;
+use Test::More tests => 7;
BEGIN { use_ok("IkiWiki"); }
is(IkiWiki::titlepage("foo bar/baz"), "foo_bar/baz");
is(IkiWiki::titlepage("foo bar&baz"), "foo_bar__38__baz");
is(IkiWiki::titlepage("foo bar & baz"), "foo_bar___38___baz");
+is(IkiWiki::titlepage("foo bar_baz"), "foo_bar__95__baz");