X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/f7bdc2385d3ec8060f00d5ceb3b45f3cc4760e38..bd50ba3e8392db13c584b4166783ee4794b20365:/IkiWiki/Plugin/sparkline.pm diff --git a/IkiWiki/Plugin/sparkline.pm b/IkiWiki/Plugin/sparkline.pm index 0b9ddd8d2..901c2f683 100644 --- a/IkiWiki/Plugin/sparkline.pm +++ b/IkiWiki/Plugin/sparkline.pm @@ -15,9 +15,18 @@ my %locmap=( ); sub import { #{{{ + hook(type => "getsetup", id => "sparkline", call => \&getsetup); hook(type => "preprocess", id => "sparkline", call => \&preprocess); } # }}} +sub getsetup () { #{{{ + return + plugin => { + safe => 1, + rebuild => undef, + }, +} #}}} + sub preprocess (@) { #{{{ my %params=@_; @@ -60,13 +69,13 @@ sub preprocess (@) { #{{{ } } elsif (! length $value) { - return "[[sparkline ".gettext("parse error")." \"$key\"]]"; + error gettext("parse error")." \"$key\""; } elsif ($key eq 'featurepoint') { my ($x, $y, $color, $diameter, $text, $location)= split(/\s*,\s*/, $value); if (! defined $diameter || $diameter < 0) { - return "[[sparkline ".gettext("bad featurepoint diameter")."]]"; + error gettext("bad featurepoint diameter"); } $x=int($x); $y=int($y); @@ -76,7 +85,7 @@ sub preprocess (@) { #{{{ if (defined $location) { $location=$locmap{$location}; if (! defined $location) { - return "[[sparkline ".gettext("bad featurepoint location")."]]"; + error gettext("bad featurepoint location"); } } $php.=qq{\$sparkline->SetFeaturePoint($x, $y, '$color', $diameter}; @@ -87,23 +96,23 @@ sub preprocess (@) { #{{{ } if ($c eq 0) { - return "[[sparkline ".gettext("missing values")."]]"; + error gettext("missing values"); } my $height=int($params{height} || 20); if ($height < 2 || $height > 100) { - return "[[sparkline ".gettext("bad height value")."]]"; + error gettext("bad height value"); } if ($style eq "Bar") { $php.=qq{\$sparkline->Render($height);\n}; } else { if (! exists $params{width}) { - return "[[sparkline ".gettext("missing width parameter")."]]"; + error gettext("missing width parameter"); } my $width=int($params{width}); if ($width < 2 || $width > 1024) { - return "[[sparkline ".gettext("bad width value")."]]"; + error gettext("bad width value"); } $php.=qq{\$sparkline->RenderResampled($width, $height);\n}; } @@ -114,10 +123,10 @@ sub preprocess (@) { #{{{ # the base for its filename. eval q{use Digest::SHA1}; error($@) if $@; - my $fn=$params{destpage}."/sparkline-". + my $fn=$params{page}."/sparkline-". IkiWiki::possibly_foolish_untaint(Digest::SHA1::sha1_hex($php)). ".png"; - will_render($params{destpage}, $fn); + will_render($params{page}, $fn); if (! -e "$config{destdir}/$fn") { my $pid; @@ -141,7 +150,7 @@ sub preprocess (@) { #{{{ waitpid $pid, 0; $SIG{PIPE}="DEFAULT"; if ($sigpipe) { - return "[[sparkline ".gettext("failed to run php")."]]"; + error gettext("failed to run php"); } if (! $params{preview}) {