X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/e1c54fef3da56ad9bb94fc7e187a56106a59f8cb..87bee5abb6f4b367133f5c4dfd1701a691a36a0a:/IkiWiki/Plugin/shortcut.pm diff --git a/IkiWiki/Plugin/shortcut.pm b/IkiWiki/Plugin/shortcut.pm index ca527ce3c..fb096ecbd 100644 --- a/IkiWiki/Plugin/shortcut.pm +++ b/IkiWiki/Plugin/shortcut.pm @@ -13,8 +13,11 @@ sub import { #{{{ sub checkconfig () { #{{{ # Preprocess the shortcuts page to get all the available shortcuts # defined before other pages are rendered. - IkiWiki::preprocess("shortcuts", "shortcuts", - readfile(srcfile("shortcuts.mdwn"))); + my $srcfile=eval {srcfile("shortcuts.mdwn")}; + if (! defined $srcfile) { + error(gettext("shortcut plugin will not work without a shortcuts.mdwn")); + } + IkiWiki::preprocess("shortcuts", "shortcuts", readfile($srcfile)); } # }}} sub preprocess_shortcut (@) { #{{{ @@ -53,6 +56,10 @@ sub shortcut_expand ($$@) { #{{{ 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 + }eg; $text=~s/_/ /g; if (defined $desc) { @@ -62,7 +69,6 @@ sub shortcut_expand ($$@) { #{{{ $desc=$text; } - $url=~s/\%s/$encoded_text/g; return "$desc"; } #}}}