]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki.pm
change how web commits are specified
[ikiwiki.git] / IkiWiki.pm
index d4e19c388fa19c8abfd75b6504b3190910e13536..063cef8e09220dc2beaea0eabf1afea759368a31 100644 (file)
@@ -77,7 +77,8 @@ sub defaultconfig () { #{{{
        adminuser => undef,
        adminemail => undef,
        plugin => [qw{mdwn link inline htmlscrubber passwordauth openid
-                       signinedit lockedit conditional recentchanges}],
+                       signinedit lockedit conditional recentchanges
+                       parentlinks}],
        libdir => undef,
        timeformat => '%c',
        locale => undef,
@@ -768,21 +769,30 @@ sub preprocess ($$$;$$) { #{{{
                        }
                        my $ret;
                        if (! $scan) {
-                               $ret=$hooks{preprocess}{$command}{call}->(
-                                       @params,
-                                       page => $page,
-                                       destpage => $destpage,
-                                       preview => $preprocess_preview,
-                               );
+                               $ret=eval {
+                                       $hooks{preprocess}{$command}{call}->(
+                                               @params,
+                                               page => $page,
+                                               destpage => $destpage,
+                                               preview => $preprocess_preview,
+                                       );
+                               };
+                               if ($@) {
+                                       chomp $@;
+                                       $ret="[[!$command <span class=\"error\">".
+                                               gettext("Error").": $@"."</span>]]";
+                               }
                        }
                        else {
                                # use void context during scan pass
-                               $hooks{preprocess}{$command}{call}->(
-                                       @params,
-                                       page => $page,
-                                       destpage => $destpage,
-                                       preview => $preprocess_preview,
-                               );
+                               eval {
+                                       $hooks{preprocess}{$command}{call}->(
+                                               @params,
+                                               page => $page,
+                                               destpage => $destpage,
+                                               preview => $preprocess_preview,
+                                       );
+                               };
                                $ret="";
                        }
                        $preprocessing{$page}--;
@@ -816,7 +826,8 @@ sub preprocess ($$$;$$) { #{{{
                        *)?             # 0 or more parameters
                        \]\]            # directive closed
                }sx;
-       } else {
+       }
+       else {
                $regex = qr{
                        (\\?)           # 1: escape?
                        \[\[(!?)        # directive open; 2: optional prefix