* Add time=mtime option to postsparkline.
parent
522416b18a
commit
2e1670a821
|
@ -21,6 +21,13 @@ sub preprocess (@) { #{{{
|
|||
return "";
|
||||
}
|
||||
|
||||
if (! exists $params{time} || $params{time} ne 'mtime') {
|
||||
$params{timehash} = \%IkiWiki::pagectime;
|
||||
}
|
||||
else {
|
||||
$params{timehash} = \%IkiWiki::pagemtime;
|
||||
}
|
||||
|
||||
if (! exists $params{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)};
|
||||
if ($@) {
|
||||
return "[[postsparkline error $@]]";
|
||||
}
|
||||
delete $params{pages};
|
||||
delete $params{formula};
|
||||
delete $params{ftime};
|
||||
return IkiWiki::Plugin::sparkline::preprocess(%params,
|
||||
map { $_ => "" } reverse @data);
|
||||
} # }}}
|
||||
|
@ -63,7 +71,7 @@ sub perfoo ($@) {
|
|||
my $count=0;
|
||||
my @data;
|
||||
foreach (@_) {
|
||||
$cur=$sub->($IkiWiki::pagectime{$_});
|
||||
$cur=$sub->($params->{timehash}->{$_});
|
||||
if (defined $prev) {
|
||||
if ($prev != $cur) {
|
||||
push @data, "$prev,$count";
|
||||
|
@ -114,7 +122,7 @@ sub interval ($@) {
|
|||
my $max=$params->{max};
|
||||
my @data;
|
||||
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;
|
||||
}
|
||||
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.
|
||||
* Support pagespec "functions" with no parameters, like included() in the
|
||||
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
|
||||
|
||||
|
|
|
@ -16,8 +16,8 @@ statistics about a set of pages, such as posts to a blog.
|
|||
|
||||
# usage
|
||||
|
||||
All options aside fron the `pages`, `max`, and `forumla` options are passed
|
||||
on to the sparkline plugin.
|
||||
All options aside fron the `pages`, `max`, `formula`, and `time` options
|
||||
are passed on to the sparkline plugin.
|
||||
|
||||
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
|
||||
|
@ -36,11 +36,14 @@ Available forumlae:
|
|||
* `peryear` - Each point represents a day; the height represents how
|
||||
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
|
||||
|
||||
Additional formulae can be added without modifying this plugin by writing
|
||||
plugins that register functions in the
|
||||
`IkiWiki::Plugin::postsparkline::formula` namespace. These functions will
|
||||
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
|
||||
the sparkline plugin.
|
||||
pages, and should return a list of data points for 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,
|
||||
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
|
||||
!link(patch) and !link(wishlist) and !todo/*/*"
|
||||
feedpages="created_after(todo/supporting_comments_via_disussion_pages)"
|
||||
|
|
Loading…
Reference in New Issue