X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/3e19033a6dd0f5604428b535367347f69ae48d98..03b956ab4cb2fee8f7b93e725869060bb45fa4ea:/IkiWiki/Plugin/shortcut.pm?ds=inline

diff --git a/IkiWiki/Plugin/shortcut.pm b/IkiWiki/Plugin/shortcut.pm
index 1840a5722..98df143ab 100644
--- a/IkiWiki/Plugin/shortcut.pm
+++ b/IkiWiki/Plugin/shortcut.pm
@@ -16,6 +16,7 @@ sub getsetup () {
 		plugin => {
 			safe => 1,
 			rebuild => undef,
+			section => "widget",
 		},
 }
 
@@ -72,11 +73,21 @@ sub shortcut_expand ($$@) {
 	add_depends($params{destpage}, "shortcuts");
 
 	my $text=join(" ", @params);
-	my $encoded_text=$text;
-	$encoded_text=~s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg;
 	
-	$url=~s{\%([sS])}{
-		$1 eq 's' ? $encoded_text : $text
+	$url=~s{\%([sSW])}{
+		if ($1 eq 's') {
+			my $t=$text;
+			$t=~s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg;
+			$t;
+		}
+		elsif ($1 eq 'S') {
+			$text;
+		}
+		elsif ($1 eq 'W') {
+			my $t=Encode::encode_utf8($text);
+			$t=~s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg;
+			$t;
+		}
 	}eg;
 
 	$text=~s/_/ /g;