Merge remote-tracking branch 'smcv/ready/limit'
commit
b199349ffd
|
@ -181,11 +181,22 @@ sub preprocess_inline (@) {
|
|||
my $feeds=exists $params{feeds} ? yesno($params{feeds}) : !$quick && ! $raw;
|
||||
my $emptyfeeds=exists $params{emptyfeeds} ? yesno($params{emptyfeeds}) : 1;
|
||||
my $feedonly=yesno($params{feedonly});
|
||||
if (! exists $params{show} && ! $archive) {
|
||||
$params{show}=10;
|
||||
|
||||
# Backwards compatibility
|
||||
if (defined $params{show} && $params{show} =~ m/^\d+$/) {
|
||||
$params{limit} = $params{show};
|
||||
delete $params{show};
|
||||
}
|
||||
if (! exists $params{feedshow} && exists $params{show}) {
|
||||
$params{feedshow}=$params{show};
|
||||
if (defined $params{feedshow} && $params{feedshow} =~ m/^\d+$/) {
|
||||
$params{feedlimit} = $params{feedshow};
|
||||
delete $params{feedshow};
|
||||
}
|
||||
|
||||
if (! exists $params{limit} && ! $archive) {
|
||||
$params{limit}=10;
|
||||
}
|
||||
if (! exists $params{feedlimit} && exists $params{limit}) {
|
||||
$params{feedlimit}=$params{limit};
|
||||
}
|
||||
my $title;
|
||||
if (exists $params{title}) {
|
||||
|
@ -233,11 +244,11 @@ sub preprocess_inline (@) {
|
|||
}
|
||||
else {
|
||||
my $num=0;
|
||||
if ($params{show}) {
|
||||
$num=$params{show};
|
||||
if ($params{limit}) {
|
||||
$num=$params{limit};
|
||||
}
|
||||
if ($params{feedshow} && $num < $params{feedshow} && $num > 0) {
|
||||
$num=$params{feedshow};
|
||||
if ($params{feedlimit} && $num < $params{feedlimit} && $num > 0) {
|
||||
$num=$params{feedlimit};
|
||||
}
|
||||
if ($params{skip} && $num) {
|
||||
$num+=$params{skip};
|
||||
|
@ -258,17 +269,17 @@ sub preprocess_inline (@) {
|
|||
|
||||
my @feedlist;
|
||||
if ($feeds) {
|
||||
if (exists $params{feedshow} &&
|
||||
$params{feedshow} && @list > $params{feedshow}) {
|
||||
@feedlist=@list[0..$params{feedshow} - 1];
|
||||
if (exists $params{feedlimit} &&
|
||||
$params{feedlimit} && @list > $params{feedlimit}) {
|
||||
@feedlist=@list[0..$params{feedlimit} - 1];
|
||||
}
|
||||
else {
|
||||
@feedlist=@list;
|
||||
}
|
||||
}
|
||||
|
||||
if ($params{show} && @list > $params{show}) {
|
||||
@list=@list[0..$params{show} - 1];
|
||||
if ($params{limit} && @list > $params{limit}) {
|
||||
@list=@list[0..$params{limit} - 1];
|
||||
}
|
||||
|
||||
if ($feeds && exists $params{feedpages}) {
|
||||
|
|
|
@ -35,7 +35,13 @@ sub preprocess (@) {
|
|||
my %params=@_;
|
||||
$params{pages}="*" unless defined $params{pages};
|
||||
my $style = ($params{style} or 'cloud');
|
||||
|
||||
|
||||
# Backwards compatibility
|
||||
if (defined $params{show} && $params{show} =~ m/^\d+$/) {
|
||||
$params{limit} = $params{show};
|
||||
delete $params{show};
|
||||
}
|
||||
|
||||
my %counts;
|
||||
my $max = 0;
|
||||
foreach my $page (pagespec_match_list($params{page}, $params{pages},
|
||||
|
@ -64,11 +70,11 @@ sub preprocess (@) {
|
|||
$max = $counts{$page} if $counts{$page} > $max;
|
||||
}
|
||||
|
||||
if (exists $params{show}) {
|
||||
if (exists $params{limit}) {
|
||||
my $i=0;
|
||||
my %show;
|
||||
foreach my $key (sort { $counts{$b} <=> $counts{$a} } keys %counts) {
|
||||
last if ++$i > $params{show};
|
||||
last if ++$i > $params{limit};
|
||||
$show{$key}=$counts{$key};
|
||||
}
|
||||
%counts=%show;
|
||||
|
|
|
@ -24,6 +24,8 @@ ikiwiki (3.20150615) UNRELEASED; urgency=medium
|
|||
* git: if no committer identity is known, set it to
|
||||
"IkiWiki <ikiwiki.info>" in .git/config. This resolves commit errors
|
||||
in versions of git that require a non-trivial committer identity.
|
||||
* inline, trail: rename show, feedshow parameters to limit, feedlimit
|
||||
(with backwards compatibility)
|
||||
|
||||
-- Simon McVittie <smcv@debian.org> Mon, 15 Jun 2015 18:13:23 +0100
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ The most common use of inlining is generating blogs and RSS or Atom feeds.
|
|||
|
||||
Example:
|
||||
|
||||
\[[!inline pages="blog/* and !*/Discussion" show="10" rootpage="blog"]]
|
||||
\[[!inline pages="blog/* and !*/Discussion" limit="10" rootpage="blog"]]
|
||||
|
||||
Any pages that match the specified [[PageSpec]] (in the example, any
|
||||
[[SubPage]] of "blog") will be part of the blog, and the newest 10
|
||||
|
@ -46,9 +46,11 @@ There are many parameters you can use with the `inline`
|
|||
directive. These are the commonly used ones:
|
||||
|
||||
* `pages` - A [[PageSpec]] of the pages to inline.
|
||||
* `show` - Specify the maximum number of matching pages to inline.
|
||||
* `limit` - Specify the maximum number of matching pages to inline.
|
||||
Default is 10, unless archiving, when the default is to show all.
|
||||
Set to 0 to show all matching pages.
|
||||
In older versions of IkiWiki this parameter was called `show`, which
|
||||
also still works.
|
||||
* `archive` - If set to "yes", only list page titles and some metadata, not
|
||||
full contents.
|
||||
* `title` - Sets the title of the rss feed if one is generated.
|
||||
|
@ -98,8 +100,10 @@ Here are some less often needed parameters:
|
|||
were created in the same commit, sort them by the name of the page
|
||||
(equivalent to `sort="age title"`).
|
||||
* `reverse` - If set to "yes", causes the sort order to be reversed.
|
||||
* `feedshow` - Specify the maximum number of matching pages to include in
|
||||
the rss/atom feeds. The default is the same as the `show` value above.
|
||||
* `feedlimit` - Specify the maximum number of matching pages to include in
|
||||
the rss/atom feeds. The default is the same as the `limit` value above.
|
||||
In older versions of IkiWiki this parameter was called `feedshow`, which
|
||||
also still works.
|
||||
* `feedonly` - Only generate the feed, do not display the pages inline on
|
||||
the page.
|
||||
* `quick` - Build archives in quick mode, without reading page contents for
|
||||
|
@ -126,7 +130,7 @@ Here are some less often needed parameters:
|
|||
* `trail` - If set to "yes" and the [[!iki plugins/trail desc=trail]] plugin
|
||||
is enabled, turn the inlined pages into a trail with next/previous links,
|
||||
by passing the same options to [[ikiwiki/directive/trailitems]]. The `skip`
|
||||
and `show` options are ignored by the trail, so the next/previous links
|
||||
and `limit` options are ignored by the trail, so the next/previous links
|
||||
traverse through all matching pages.
|
||||
|
||||
[[!meta robots="noindex, follow"]]
|
||||
|
|
|
@ -28,11 +28,14 @@ Or to display a cloud of tags related to Linux, you could use:
|
|||
|
||||
\[[!pagestats pages="tags/* and !tags/linux" among="tagged(linux)"]]
|
||||
|
||||
The optional `show` parameter limits display to the specified number of
|
||||
The optional `limit` parameter limits display to the specified number of
|
||||
pages. For instance, to show a table of the top ten pages with the most
|
||||
links:
|
||||
|
||||
\[[!pagestats style="table" show="10"]]
|
||||
\[[!pagestats style="table" limit="10"]]
|
||||
|
||||
In older versions of IkiWiki this parameter was called `show`;
|
||||
that name still works, if its value is numeric.
|
||||
|
||||
The optional `class` parameter can be used to control the class
|
||||
of the generated tag cloud `div` or page stats `table`.
|
||||
|
|
|
@ -40,9 +40,10 @@ sub write_old_file {
|
|||
write_old_file("protagonists.mdwn",
|
||||
'[[!inline pages="protagonists/*" rootpage="protagonists/new"]]');
|
||||
write_old_file("friends.mdwn",
|
||||
'[[!inline pages="friends/*" postform=yes sort=title show=2]]');
|
||||
'[[!inline pages="friends/*" postform=yes sort=title limit=2]]');
|
||||
write_old_file("antagonists.mdwn",
|
||||
'[[!inline pages="antagonists/*"]]');
|
||||
# using old spelling of "limit" ("show") to verify backwards compat
|
||||
write_old_file("enemies.mdwn",
|
||||
'[[!inline pages="enemies/*" postform=no rootpage=enemies sort=title reverse=yes show=2]]');
|
||||
foreach my $page (qw(protagonists/shepard protagonists/link
|
||||
|
@ -68,7 +69,7 @@ like($blob, qr{<input type="hidden" name="from" value="friends"},
|
|||
like($blob, qr[this page is \{friends/garrus}.*this page is \{friends/liara}]s,
|
||||
'first two pages in desired sort order are present');
|
||||
unlike($blob, qr{friends/(?:midna|telma)},
|
||||
'pages excluded by show should not be present');
|
||||
'pages excluded by limit should not be present');
|
||||
|
||||
$blob = readfile("t/tmp/out/antagonists.html");
|
||||
unlike($blob, qr{\Q$add_new_post\E}, 'default is no postform');
|
||||
|
|
Loading…
Reference in New Issue