* Add time=mtime option to postsparkline.
parent
522416b18a
commit
2e1670a821
|
@ -21,6 +21,13 @@ sub preprocess (@) { #{{{
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (! exists $params{time} || $params{time} ne 'mtime') {
|
||||||
|
$params{timehash} = \%IkiWiki::pagectime;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$params{timehash} = \%IkiWiki::pagemtime;
|
||||||
|
}
|
||||||
|
|
||||||
if (! exists $params{formula}) {
|
if (! exists $params{formula}) {
|
||||||
return "[[postsparkline ".gettext("missing formula")."]]";
|
return "[[postsparkline ".gettext("missing formula")."]]";
|
||||||
}
|
}
|
||||||
|
@ -42,14 +49,15 @@ sub preprocess (@) { #{{{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@list = sort { $IkiWiki::pagectime{$b} <=> $IkiWiki::pagectime{$a} } @list;
|
@list = sort { $params{timehash}->{$b} <=> $params{timehash}->{$a} } @list;
|
||||||
|
|
||||||
delete $params{pages};
|
|
||||||
delete $params{formula};
|
|
||||||
my @data=eval qq{IkiWiki::Plugin::postsparkline::formula::$formula(\\\%params, \@list)};
|
my @data=eval qq{IkiWiki::Plugin::postsparkline::formula::$formula(\\\%params, \@list)};
|
||||||
if ($@) {
|
if ($@) {
|
||||||
return "[[postsparkline error $@]]";
|
return "[[postsparkline error $@]]";
|
||||||
}
|
}
|
||||||
|
delete $params{pages};
|
||||||
|
delete $params{formula};
|
||||||
|
delete $params{ftime};
|
||||||
return IkiWiki::Plugin::sparkline::preprocess(%params,
|
return IkiWiki::Plugin::sparkline::preprocess(%params,
|
||||||
map { $_ => "" } reverse @data);
|
map { $_ => "" } reverse @data);
|
||||||
} # }}}
|
} # }}}
|
||||||
|
@ -63,7 +71,7 @@ sub perfoo ($@) {
|
||||||
my $count=0;
|
my $count=0;
|
||||||
my @data;
|
my @data;
|
||||||
foreach (@_) {
|
foreach (@_) {
|
||||||
$cur=$sub->($IkiWiki::pagectime{$_});
|
$cur=$sub->($params->{timehash}->{$_});
|
||||||
if (defined $prev) {
|
if (defined $prev) {
|
||||||
if ($prev != $cur) {
|
if ($prev != $cur) {
|
||||||
push @data, "$prev,$count";
|
push @data, "$prev,$count";
|
||||||
|
@ -114,7 +122,7 @@ sub interval ($@) {
|
||||||
my $max=$params->{max};
|
my $max=$params->{max};
|
||||||
my @data;
|
my @data;
|
||||||
for (my $i=1; $i < @_; $i++) {
|
for (my $i=1; $i < @_; $i++) {
|
||||||
push @data, $IkiWiki::pagectime{$_[$i-1]} - $IkiWiki::pagectime{$_[$i]};
|
push @data, $params->{timehash}->{$_[$i-1]} - $params->{timehash}->{$_[$i]};
|
||||||
last if --$max <= 0;
|
last if --$max <= 0;
|
||||||
}
|
}
|
||||||
return @data;
|
return @data;
|
||||||
|
|
|
@ -21,8 +21,9 @@ ikiwiki (2.6) UNRELEASED; urgency=low
|
||||||
* The patch also adds dcterms:creator to rss items that have a known author.
|
* The patch also adds dcterms:creator to rss items that have a known author.
|
||||||
* Support pagespec "functions" with no parameters, like included() in the
|
* Support pagespec "functions" with no parameters, like included() in the
|
||||||
conditional plugin.
|
conditional plugin.
|
||||||
|
* Add time=mtime option to postsparkline.
|
||||||
|
|
||||||
-- Joey Hess <joeyh@debian.org> Sat, 11 Aug 2007 19:26:14 -0400
|
-- Joey Hess <joeyh@debian.org> Sun, 12 Aug 2007 05:17:23 -0400
|
||||||
|
|
||||||
ikiwiki (2.5) unstable; urgency=low
|
ikiwiki (2.5) unstable; urgency=low
|
||||||
|
|
||||||
|
|
|
@ -16,8 +16,8 @@ statistics about a set of pages, such as posts to a blog.
|
||||||
|
|
||||||
# usage
|
# usage
|
||||||
|
|
||||||
All options aside fron the `pages`, `max`, and `forumla` options are passed
|
All options aside fron the `pages`, `max`, `formula`, and `time` options
|
||||||
on to the sparkline plugin.
|
are passed on to the sparkline plugin.
|
||||||
|
|
||||||
You don't need to specify any data points (though you can if you want to).
|
You don't need to specify any data points (though you can if you want to).
|
||||||
Instead, data points are automatically generated based on the creation
|
Instead, data points are automatically generated based on the creation
|
||||||
|
@ -36,11 +36,14 @@ Available forumlae:
|
||||||
* `peryear` - Each point represents a day; the height represents how
|
* `peryear` - Each point represents a day; the height represents how
|
||||||
many posts were made that year.
|
many posts were made that year.
|
||||||
|
|
||||||
|
The `time` parameter has a default value of "ctime", since forumae use
|
||||||
|
the creation times of pages by default. If you instead want
|
||||||
|
them to use the modification times of pages, set it to "mtime".
|
||||||
|
|
||||||
# adding formulae
|
# adding formulae
|
||||||
|
|
||||||
Additional formulae can be added without modifying this plugin by writing
|
Additional formulae can be added without modifying this plugin by writing
|
||||||
plugins that register functions in the
|
plugins that register functions in the
|
||||||
`IkiWiki::Plugin::postsparkline::formula` namespace. These functions will
|
`IkiWiki::Plugin::postsparkline::formula` namespace. These functions will
|
||||||
receive on input a reference to a hash of parameters, and a sorted list of
|
receive on input a reference to a hash of parameters, and a sorted list of
|
||||||
pages (newest pages first), and should return a list of data points for
|
pages, and should return a list of data points for the sparkline plugin.
|
||||||
the sparkline plugin.
|
|
||||||
|
|
|
@ -2,6 +2,18 @@ Feel free to post your ideas for todo and [[wishlist]] items here, as well
|
||||||
as any [[patches|patch]]. If it seems more like a bug in the existing code,
|
as any [[patches|patch]]. If it seems more like a bug in the existing code,
|
||||||
post it to [[bugs]] instead. Link items to [[todo/done]] when done.
|
post it to [[bugs]] instead. Link items to [[todo/done]] when done.
|
||||||
|
|
||||||
|
[[if test="enabled(postsparkline)"
|
||||||
|
then="""
|
||||||
|
How long will it take your todo item to be fixed? Well...
|
||||||
|
[[postsparkline pages="todo/* and !todo/done and !link(todo/done) and
|
||||||
|
!link(patch) and !link(wishlist) and !todo/*/*" max=120
|
||||||
|
formula=perday style=bar barwidth=2 barspacing=1 height=13]]
|
||||||
|
this many are being added per day
|
||||||
|
[[postsparkline pages="todo/* and !todo and link(todo/done)" max=120
|
||||||
|
formula=perday time=mtime style=bar barwidth=2 barspacing=1 height=13]]
|
||||||
|
while this many are being fixed.
|
||||||
|
"""]]
|
||||||
|
|
||||||
[[inline pages="todo/* and !todo/done and !link(todo/done) and
|
[[inline pages="todo/* and !todo/done and !link(todo/done) and
|
||||||
!link(patch) and !link(wishlist) and !todo/*/*"
|
!link(patch) and !link(wishlist) and !todo/*/*"
|
||||||
feedpages="created_after(todo/supporting_comments_via_disussion_pages)"
|
feedpages="created_after(todo/supporting_comments_via_disussion_pages)"
|
||||||
|
|
Loading…
Reference in New Issue