postsparkline: switch to use_pagespec
authorJoey Hess <joey@gnu.kitenet.net>
Fri, 9 Oct 2009 02:56:36 +0000 (22:56 -0400)
committerJoey Hess <joey@gnu.kitenet.net>
Fri, 9 Oct 2009 02:56:36 +0000 (22:56 -0400)
Also, fixed up the dependency type for time=mtime. That has
to remain a content dependency, sadly.

IkiWiki/Plugin/postsparkline.pm

index ea73e9180e945f8c95794c91eec93a9202cf7694..f51e309c89800c8fddf38b0728a0b39e094cee57 100644 (file)
@@ -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 ($@) {