summaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin/postsparkline.pm
diff options
context:
space:
mode:
Diffstat (limited to 'IkiWiki/Plugin/postsparkline.pm')
-rw-r--r--IkiWiki/Plugin/postsparkline.pm14
1 files changed, 9 insertions, 5 deletions
diff --git a/IkiWiki/Plugin/postsparkline.pm b/IkiWiki/Plugin/postsparkline.pm
index d2e5c2378..0d5a12e33 100644
--- a/IkiWiki/Plugin/postsparkline.pm
+++ b/IkiWiki/Plugin/postsparkline.pm
@@ -30,11 +30,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 +53,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 ($@) {