summaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin/postsparkline.pm
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2010-08-27 10:01:58 +0200
committerJonas Smedegaard <dr@jones.dk>2010-08-27 10:01:58 +0200
commitf398ad035b973608d380c9939ea845d8e2a0cdc2 (patch)
tree1ba1a0c94e375ab8ed609eaa57a542c6b87de5a8 /IkiWiki/Plugin/postsparkline.pm
parent958e5735c946263a111420fe47abe58782581e8c (diff)
parent6d213a0c739d5b34357b01a616f99197eeba6ad9 (diff)
Merge branch 'master' of git://git.ikiwiki.info
Diffstat (limited to 'IkiWiki/Plugin/postsparkline.pm')
-rw-r--r--IkiWiki/Plugin/postsparkline.pm15
1 files changed, 10 insertions, 5 deletions
diff --git a/IkiWiki/Plugin/postsparkline.pm b/IkiWiki/Plugin/postsparkline.pm
index d2e5c2378..2fae9c5fe 100644
--- a/IkiWiki/Plugin/postsparkline.pm
+++ b/IkiWiki/Plugin/postsparkline.pm
@@ -16,6 +16,7 @@ sub getsetup () {
plugin => {
safe => 1,
rebuild => undef,
+ section => "widget",
},
}
@@ -30,11 +31,16 @@ sub preprocess (@) {
return "";
}
+ my $deptype;
if (! exists $params{time} || $params{time} ne 'mtime') {
$params{timehash} = \%IkiWiki::pagectime;
+ # need to update when pages are added or removed
+ $deptype = deptype("presence");
}
else {
$params{timehash} = \%IkiWiki::pagemtime;
+ # need to update when pages are changed
+ $deptype = deptype("content");
}
if (! exists $params{formula}) {
@@ -48,12 +54,11 @@ sub preprocess (@) {
error gettext("unknown formula");
}
- add_depends($params{page}, $params{pages});
-
my @list=sort { $params{timehash}->{$b} <=> $params{timehash}->{$a} }
- pagespec_match_list(
- [ grep { $_ ne $params{page} } keys %pagesources],
- $params{pages}, location => $params{page});
+ pagespec_match_list($params{page}, $params{pages},
+ deptype => $deptype,
+ filter => sub { $_[0] eq $params{page} },
+ );
my @data=eval qq{IkiWiki::Plugin::postsparkline::formula::$formula(\\\%params, \@list)};
if ($@) {