]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/postsparkline.pm
switch preprocess hooks to use error function
[ikiwiki.git] / IkiWiki / Plugin / postsparkline.pm
index 6f7558bc44d2375afcfb3a6a38a7680fe3ffbb1b..6fc96f8b343cbca8eeeb893c41e2569a962d915c 100644 (file)
@@ -29,14 +29,14 @@ sub preprocess (@) { #{{{
        }
 
        if (! exists $params{formula}) {
-               return "[[postsparkline ".gettext("missing formula")."]]";
+               error gettext("missing formula")
        }
        my $formula=$params{formula};
        $formula=~s/[^a-zA-Z0-9]*//g;
        $formula=IkiWiki::possibly_foolish_untaint($formula);
        if (! length $formula ||
            ! IkiWiki::Plugin::postsparkline::formula->can($formula)) {
-               return "[[postsparkline ".gettext("unknown formula")."]]";
+               error gettext("unknown formula");
        }
 
        add_depends($params{page}, $params{pages});
@@ -53,13 +53,22 @@ sub preprocess (@) { #{{{
 
        my @data=eval qq{IkiWiki::Plugin::postsparkline::formula::$formula(\\\%params, \@list)};
        if ($@) {
-               return "[[postsparkline error $@]]";
+               error $@;
        }
+
+       if (! @data) {
+               # generate an empty graph
+               push @data, 0 foreach 1..($params{max} / 2);
+       }
+
+       my $color=exists $params{color} ? "($params{color})" : "";
+
        delete $params{pages};
        delete $params{formula};
        delete $params{ftime};
+       delete $params{color};
        return IkiWiki::Plugin::sparkline::preprocess(%params, 
-               map { $_ => "" } reverse @data);
+               map { $_.$color => "" } reverse @data);
 } # }}}
 
 sub perfoo ($@) {