X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/b72b8b2b0ec5888d53450db26e20252d1e18fb99..f3bfa1a79763c5dad1ca415c902ea51b6bccce83:/IkiWiki/Plugin/shortcut.pm

diff --git a/IkiWiki/Plugin/shortcut.pm b/IkiWiki/Plugin/shortcut.pm
index fb096ecbd..7bfce586f 100644
--- a/IkiWiki/Plugin/shortcut.pm
+++ b/IkiWiki/Plugin/shortcut.pm
@@ -6,14 +6,23 @@ use strict;
 use IkiWiki 2.00;
 
 sub import { #{{{
-	hook(type => "checkconfig", id => "shortcut", call => \&checkconfig);
+	hook(type => "getsetup", id => "shortcut", call => \&getsetup);
+	hook(type => "refresh", id => "shortcut", call => \&refresh);
 	hook(type => "preprocess", id => "shortcut", call => \&preprocess_shortcut);
 } #}}}
 
-sub checkconfig () { #{{{
+sub getsetup () { #{{{
+	return
+		plugin => {
+			safe => 1,
+			rebuild => undef,
+		},
+} #}}}
+
+sub refresh () { #{{{
 	# Preprocess the shortcuts page to get all the available shortcuts
 	# defined before other pages are rendered.
-	my $srcfile=eval {srcfile("shortcuts.mdwn")};
+	my $srcfile=srcfile("shortcuts.mdwn", 1);
 	if (! defined $srcfile) {
 		error(gettext("shortcut plugin will not work without a shortcuts.mdwn"));
 	}
@@ -24,7 +33,7 @@ sub preprocess_shortcut (@) { #{{{
 	my %params=@_;
 
 	if (! defined $params{name} || ! defined $params{url}) {
-		return "[[shortcut ".gettext("missing name or url parameter")."]]";
+		error gettext("missing name or url parameter");
 	}
 
 	hook(type => "preprocess", no_override => 1, id => $params{name},
@@ -62,6 +71,9 @@ sub shortcut_expand ($$@) { #{{{
 	}eg;
 
 	$text=~s/_/ /g;
+	if (defined $params{desc}) {
+		$desc=$params{desc};
+	}
 	if (defined $desc) {
 		$desc=~s/\%s/$text/g;
 	}