]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/postsparkline.pm
Merge commit 'upstream/master'
[git.ikiwiki.info.git] / IkiWiki / Plugin / postsparkline.pm
index ac7ad9d73b7c6fb6a5c7f26e05ce2b598ef6177d..1f4c065c1e1f09ad6ba9d395ecd3c002a1bb0a25 100644 (file)
@@ -7,9 +7,18 @@ use IkiWiki 2.00;
 
 sub import { #{{{
        IkiWiki::loadplugin('sparkline');
 
 sub import { #{{{
        IkiWiki::loadplugin('sparkline');
+       hook(type => "getsetup", id => "postsparkline", call => \&getsetup);
        hook(type => "preprocess", id => "postsparkline", call => \&preprocess);
 } # }}}
 
        hook(type => "preprocess", id => "postsparkline", call => \&preprocess);
 } # }}}
 
+sub getsetup () { #{{{
+       return 
+               plugin => {
+                       safe => 1,
+                       rebuild => undef,
+               },
+} #}}}
+
 sub preprocess (@) { #{{{
        my %params=@_;
 
 sub preprocess (@) { #{{{
        my %params=@_;
 
@@ -29,14 +38,14 @@ sub preprocess (@) { #{{{
        }
 
        if (! exists $params{formula}) {
        }
 
        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)) {
        }
        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});
        }
 
        add_depends($params{page}, $params{pages});
@@ -53,7 +62,12 @@ sub preprocess (@) { #{{{
 
        my @data=eval qq{IkiWiki::Plugin::postsparkline::formula::$formula(\\\%params, \@list)};
        if ($@) {
 
        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})" : "";
        }
 
        my $color=exists $params{color} ? "($params{color})" : "";