X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/7ae2deacdf5ebf7274da8c77daf42b43aca985c0..07a1796d3bf52bca9a325cf517f742ff44b49921:/IkiWiki/Plugin/sparkline.pm
diff --git a/IkiWiki/Plugin/sparkline.pm b/IkiWiki/Plugin/sparkline.pm
index a44e06252..69b3512c2 100644
--- a/IkiWiki/Plugin/sparkline.pm
+++ b/IkiWiki/Plugin/sparkline.pm
@@ -3,7 +3,7 @@ package IkiWiki::Plugin::sparkline;
use warnings;
use strict;
-use IkiWiki;
+use IkiWiki 2.00;
use IPC::Open2;
my $match_num=qr/[-+]?[0-9]+(?:\.[0-9]+)?/;
@@ -60,13 +60,13 @@ sub preprocess (@) { #{{{
}
}
elsif (! length $value) {
- return "[[".gettext("sparkline parse error")." \"$key\"]]";
+ return "[[sparkline ".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 "[[".gettext("sparkline bad featurepoint diameter")."]]";
+ return "[[sparkline ".gettext("bad featurepoint diameter")."]]";
}
$x=int($x);
$y=int($y);
@@ -76,7 +76,7 @@ sub preprocess (@) { #{{{
if (defined $location) {
$location=$locmap{$location};
if (! defined $location) {
- return "[[".gettext("sparkline bad featurepoint location")."]]";
+ return "[[sparkline ".gettext("bad featurepoint location")."]]";
}
}
$php.=qq{\$sparkline->SetFeaturePoint($x, $y, '$color', $diameter};
@@ -87,31 +87,27 @@ sub preprocess (@) { #{{{
}
if ($c eq 0) {
- return "[[".gettext("sparkline missing values")."]]";
+ return "[[sparkline ".gettext("missing values")."]]";
}
my $height=int($params{height} || 20);
if ($height < 2 || $height > 100) {
- return "[[".gettext("sparkline bad height value")."]]";
+ return "[[sparkline ".gettext("bad height value")."]]";
}
if ($style eq "Bar") {
$php.=qq{\$sparkline->Render($height);\n};
}
else {
if (! exists $params{width}) {
- return "[[".gettext("sparkline missing width parameter")."]]";
+ return "[[sparkline ".gettext("missing width parameter")."]]";
}
my $width=int($params{width});
if ($width < 2 || $width > 1024) {
- return "[[".gettext("sparkline bad width value")."]]";
+ return "[[sparkline ".gettext("bad width value")."]]";
}
$php.=qq{\$sparkline->RenderResampled($width, $height);\n};
}
- if ($params{preview}) {
- return "[[".gettext("sparkline previewing not implemented")."]]";
- }
-
$php.=qq{\$sparkline->Output();\n?>\n};
# Use the sha1 of the php code that generates the sparkline as
@@ -145,15 +141,22 @@ sub preprocess (@) { #{{{
waitpid $pid, 0;
$SIG{PIPE}="DEFAULT";
if ($sigpipe) {
- return "[[".gettext("sparkline failed to run php")."]]";
+ return "[[sparkline ".gettext("failed to run php")."]]";
}
- writefile($fn, $config{destdir}, $png, 1);
+ if (! $params{preview}) {
+ writefile($fn, $config{destdir}, $png, 1);
+ }
+ else {
+ # can't write the file, so embed it in a data uri
+ eval q{use MIME::Base64};
+ error($@) if $@;
+ return "";
+ }
}
- return '';
+ return '';
} # }}}
1