diff options
author | Joey Hess <joey@kodama.kitenet.net> | 2008-07-24 12:36:10 -0400 |
---|---|---|
committer | Joey Hess <joey@kodama.kitenet.net> | 2008-07-24 12:36:10 -0400 |
commit | c2f621cb1c2eb8bb898acfbfac059c5ee2d9568e (patch) | |
tree | a07dccd932d71b5a4d240cddf2dd441907b41ee8 | |
parent | 8b3d2ab0bcd5b79c30d6e07dd8f363431d94dd72 (diff) |
fix encoding issues with link conversion
Have to convert link text to page name going in.
And on the way out, need to replace spaces with underscores in the link
text, which is not normally done with titles.
-rw-r--r-- | IkiWiki/Plugin/link.pm | 3 | ||||
-rwxr-xr-x | t/renamepage.t | 5 |
2 files changed, 5 insertions, 3 deletions
diff --git a/IkiWiki/Plugin/link.pm b/IkiWiki/Plugin/link.pm index 529610710..2ea6aa19e 100644 --- a/IkiWiki/Plugin/link.pm +++ b/IkiWiki/Plugin/link.pm @@ -90,8 +90,9 @@ sub renamepage (@) { #{{{ $params{content} =~ s{(?<!\\)$link_regexp}{ my $linktext=$2; my $link=$linktext; - if (bestlink($page, $2) eq $old) { + if (bestlink($page, IkiWiki::linkpage($linktext)) eq $old) { $link=IkiWiki::pagetitle($new, 1); + $link=~s/ /_/g; if ($linktext =~ m/.*\/*?[A-Z]/) { # preserve leading cap of last component my @bits=split("/", $link); diff --git a/t/renamepage.t b/t/renamepage.t index 1a607370b..a706cbb46 100755 --- a/t/renamepage.t +++ b/t/renamepage.t @@ -1,7 +1,7 @@ #!/usr/bin/perl use warnings; use strict; -use Test::More tests => 20; +use Test::More tests => 21; use Encode; BEGIN { use_ok("IkiWiki"); } @@ -45,6 +45,7 @@ is(try("z", "foo" => "bar", "[[!moo ]]"), "[[!moo ]]"); # preprocessor directive is(try("bugs", "bugs/foo" => "wishlist/bar", "[[foo]]"), "[[wishlist/bar]]"); # subpage link is(try("z", "foo_bar" => "bar", "[[foo_bar]]"), "[[bar]]"); # old link with underscore is(try("z", "foo" => "bar_foo", "[[foo]]"), "[[bar_foo]]"); # new link with underscore +is(try("z", "foo_bar" => "bar_foo", "[[foo_bar]]"), "[[bar_foo]]"); # both with underscore is(try("z", "foo" => "bar__".ord("(")."__", "[[foo]]"), "[[bar(]]"); # new link with escaped chars -is(try("z", "foo__".ord("(")."__" => "bar", "[[foo(]]"), "[[bar(]]"); # old link with escaped chars +is(try("z", "foo__".ord("(")."__" => "bar(", "[[foo(]]"), "[[bar(]]"); # old link with escaped chars is(try("z", "foo__".ord("(")."__" => "bar__".ord(")")."__", "[[foo(]]"), "[[bar)]]"); # both with escaped chars |