summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@gnu.kitenet.net>2009-10-08 22:56:36 -0400
committerJoey Hess <joey@gnu.kitenet.net>2009-10-08 22:56:36 -0400
commit80ab1dbc121fa74fe2f021a5af2b941c743c332d (patch)
tree4484ddf1d7d35e45ade990564ef36e0963071ac2
parent3be7a02e7d0a4f19ffba3566d9aedee2885387d4 (diff)
postsparkline: switch to use_pagespec
Also, fixed up the dependency type for time=mtime. That has to remain a content dependency, sadly.
-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 ea73e9180..f51e309c8 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}, deptype("presence"));
-
my @list=sort { $params{timehash}->{$b} <=> $params{timehash}->{$a} }
- pagespec_match_list(
- [ grep { $_ ne $params{page} } keys %pagesources],
- $params{pages}, location => $params{page});
+ use_pagespec($params{page}, $params{pages},
+ deptype => $deptype,
+ limit => sub { $_[0] ne $params{page} },
+ );
my @data=eval qq{IkiWiki::Plugin::postsparkline::formula::$formula(\\\%params, \@list)};
if ($@) {