* 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.
master
joey 2007-03-02 00:37:22 +00:00
parent 790fb348ae
commit 3660b1c7a1
4 changed files with 15 additions and 7 deletions

View File

@ -365,20 +365,18 @@ sub pagetitle ($;$) { #{{{
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;
} #}}}

8
debian/changelog vendored
View File

@ -1,3 +1,11 @@
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.

View File

@ -1,7 +1,7 @@
#!/usr/bin/perl
use warnings;
use strict;
use Test::More tests => 6;
use Test::More tests => 7;
BEGIN { use_ok("IkiWiki"); }
@ -10,3 +10,4 @@ is(IkiWiki::pagetitle("foo_bar_baz"), "foo bar baz");
is(IkiWiki::pagetitle("foo_bar__33__baz"), "foo bar&#33;baz");
is(IkiWiki::pagetitle("foo_bar__1234__baz"), "foo bar&#1234;baz");
is(IkiWiki::pagetitle("foo_bar___33___baz"), "foo bar &#33; baz");
is(IkiWiki::pagetitle("foo_bar___95___baz"), "foo bar &#95; baz");

View File

@ -1,7 +1,7 @@
#!/usr/bin/perl
use warnings;
use strict;
use Test::More tests => 6;
use Test::More tests => 7;
BEGIN { use_ok("IkiWiki"); }
@ -10,3 +10,4 @@ is(IkiWiki::titlepage("foo bar baz"), "foo_bar_baz");
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");