Photos
Blog
Projects
vanrenterghem.biz
projects
/
git.ikiwiki.info.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add ikistrap plugin for ikistrap theme.
[git.ikiwiki.info.git]
/
IkiWiki
/
Plugin
/
sparkline.pm
diff --git
a/IkiWiki/Plugin/sparkline.pm
b/IkiWiki/Plugin/sparkline.pm
index bcff46aeb47ed8156b8d866f348ffab29a7a0f23..e28d2605a2c1802e6afe798cab14548529d55936 100644
(file)
--- a/
IkiWiki/Plugin/sparkline.pm
+++ b/
IkiWiki/Plugin/sparkline.pm
@@
-3,7
+3,7
@@
package IkiWiki::Plugin::sparkline;
use warnings;
use strict;
use warnings;
use strict;
-use IkiWiki
2
.00;
+use IkiWiki
3
.00;
use IPC::Open2;
my $match_num=qr/[-+]?[0-9]+(?:\.[0-9]+)?/;
use IPC::Open2;
my $match_num=qr/[-+]?[0-9]+(?:\.[0-9]+)?/;
@@
-14,11
+14,21
@@
my %locmap=(
left => 'TEXT_LEFT',
);
left => 'TEXT_LEFT',
);
-sub import { #{{{
+sub import {
+ hook(type => "getsetup", id => "sparkline", call => \&getsetup);
hook(type => "preprocess", id => "sparkline", call => \&preprocess);
hook(type => "preprocess", id => "sparkline", call => \&preprocess);
-} # }}}
-
-sub preprocess (@) { #{{{
+}
+
+sub getsetup () {
+ return
+ plugin => {
+ safe => 1,
+ rebuild => undef,
+ section => "widget",
+ },
+}
+
+sub preprocess (@) {
my %params=@_;
my $php;
my %params=@_;
my $php;
@@
-66,7
+76,7
@@
sub preprocess (@) { #{{{
my ($x, $y, $color, $diameter, $text, $location)=
split(/\s*,\s*/, $value);
if (! defined $diameter || $diameter < 0) {
my ($x, $y, $color, $diameter, $text, $location)=
split(/\s*,\s*/, $value);
if (! defined $diameter || $diameter < 0) {
- error gettext("
ba
d featurepoint diameter");
+ error gettext("
invali
d featurepoint diameter");
}
$x=int($x);
$y=int($y);
}
$x=int($x);
$y=int($y);
@@
-76,7
+86,7
@@
sub preprocess (@) { #{{{
if (defined $location) {
$location=$locmap{$location};
if (! defined $location) {
if (defined $location) {
$location=$locmap{$location};
if (! defined $location) {
- error gettext("
ba
d featurepoint location");
+ error gettext("
invali
d featurepoint location");
}
}
$php.=qq{\$sparkline->SetFeaturePoint($x, $y, '$color', $diameter};
}
}
$php.=qq{\$sparkline->SetFeaturePoint($x, $y, '$color', $diameter};
@@
-92,7
+102,7
@@
sub preprocess (@) { #{{{
my $height=int($params{height} || 20);
if ($height < 2 || $height > 100) {
my $height=int($params{height} || 20);
if ($height < 2 || $height > 100) {
- error gettext("
ba
d height value");
+ error gettext("
invali
d height value");
}
if ($style eq "Bar") {
$php.=qq{\$sparkline->Render($height);\n};
}
if ($style eq "Bar") {
$php.=qq{\$sparkline->Render($height);\n};
@@
-103,7
+113,7
@@
sub preprocess (@) { #{{{
}
my $width=int($params{width});
if ($width < 2 || $width > 1024) {
}
my $width=int($params{width});
if ($width < 2 || $width > 1024) {
- error gettext("
ba
d width value");
+ error gettext("
invali
d width value");
}
$php.=qq{\$sparkline->RenderResampled($width, $height);\n};
}
}
$php.=qq{\$sparkline->RenderResampled($width, $height);\n};
}
@@
-112,16
+122,16
@@
sub preprocess (@) { #{{{
# Use the sha1 of the php code that generates the sparkline as
# the base for its filename.
# Use the sha1 of the php code that generates the sparkline as
# the base for its filename.
- eval q{use Digest::SHA
1
};
+ eval q{use Digest::SHA};
error($@) if $@;
my $fn=$params{page}."/sparkline-".
error($@) if $@;
my $fn=$params{page}."/sparkline-".
- IkiWiki::possibly_foolish_untaint(Digest::SHA
1
::sha1_hex($php)).
+ IkiWiki::possibly_foolish_untaint(Digest::SHA::sha1_hex($php)).
".png";
will_render($params{page}, $fn);
if (! -e "$config{destdir}/$fn") {
my $pid;
".png";
will_render($params{page}, $fn);
if (! -e "$config{destdir}/$fn") {
my $pid;
- my $sigpipe=0;
;
+ my $sigpipe=0;
$SIG{PIPE}=sub { $sigpipe=1 };
$pid=open2(*IN, *OUT, "php");
$SIG{PIPE}=sub { $sigpipe=1 };
$pid=open2(*IN, *OUT, "php");
@@
-140,7
+150,7
@@
sub preprocess (@) { #{{{
waitpid $pid, 0;
$SIG{PIPE}="DEFAULT";
waitpid $pid, 0;
$SIG{PIPE}="DEFAULT";
- if ($sigpipe) {
+ if ($sigpipe
|| ! defined $png
) {
error gettext("failed to run php");
}
error gettext("failed to run php");
}
@@
-148,7
+158,8
@@
sub preprocess (@) { #{{{
writefile($fn, $config{destdir}, $png, 1);
}
else {
writefile($fn, $config{destdir}, $png, 1);
}
else {
- # can't write the file, so embed it in a data uri
+ # in preview mode, embed the image in a data uri
+ # to avoid temp file clutter
eval q{use MIME::Base64};
error($@) if $@;
return "<img src=\"data:image/png;base64,".
eval q{use MIME::Base64};
error($@) if $@;
return "<img src=\"data:image/png;base64,".
@@
-157,6
+168,6
@@
sub preprocess (@) { #{{{
}
return '<img src="'.urlto($fn, $params{destpage}).'" alt="graph" />';
}
return '<img src="'.urlto($fn, $params{destpage}).'" alt="graph" />';
-}
# }}}
+}
1
1