]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/postsparkline.pm
Added a comment
[git.ikiwiki.info.git] / IkiWiki / Plugin / postsparkline.pm
index 1753e4cf90b87fc615056d915d112a2f61fe4bc4..2fae9c5fee90ab266aa0be0d0b2fb4a5267afbb3 100644 (file)
@@ -3,7 +3,7 @@ package IkiWiki::Plugin::postsparkline;
 
 use warnings;
 use strict;
-use IkiWiki 2.00;
+use IkiWiki 3.00;
 
 sub import {
        IkiWiki::loadplugin('sparkline');
@@ -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,17 +54,11 @@ sub preprocess (@) {
                error gettext("unknown formula");
        }
 
-       add_depends($params{page}, $params{pages});
-
-       my @list;
-       foreach my $page (keys %pagesources) {
-               next if $page eq $params{page};
-               if (pagespec_match($page, $params{pages}, location => $params{page})) {
-                       push @list, $page;
-               }
-       }
-       
-       @list = sort { $params{timehash}->{$b} <=> $params{timehash}->{$a} } @list;
+       my @list=sort { $params{timehash}->{$b} <=> $params{timehash}->{$a} } 
+               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 ($@) {