use warnings;
use strict;
use IkiWiki 1.00;
-use IkiWiki::Render; # for displaytime
use URI;
sub import { #{{{
my @list;
foreach my $page (keys %pagesources) {
next if $page eq $params{page};
- if (pagespec_match($page, $params{pages})) {
+ if (pagespec_match($page, $params{pages}, $params{page})) {
push @list, $page;
}
}
return sprintf(gettext("unknown sort type %s"), $params{sort});
}
+ if (yesno($params{reverse})) {
+ @list=reverse(@list);
+ }
+
if (exists $params{skip}) {
@list=@list[$params{skip} .. scalar @list - 1];
}
if ($actions) {
my $file = $pagesources{$page};
my $type = pagetype($file);
- if ($config{discussion} && (length $config{cgiurl} || exists $links{$page."/".gettext("discussion")})) {
- $template->param(have_actions => 1);
- $template->param(discussionlink => htmllink($page, $params{page}, "Discussion", 1, 1));
+ if ($config{discussion}) {
+ my $discussionlink=gettext("discussion");
+ if ($page !~ /.*\/\Q$discussionlink\E$/ &&
+ (length $config{cgiurl} ||
+ exists $links{$page."/".$discussionlink})) {
+ $template->param(have_actions => 1);
+ $template->param(discussionlink => htmllink($page, $params{page}, gettext("Discussion"), 1, 1));
+ }
}
if (length $config{cgiurl} && defined $type) {
$template->param(have_actions => 1);
}
}
- if ($feeds && $rss) {
- will_render($params{page}, rsspage($params{page}));
- writefile(rsspage($params{page}), $config{destdir},
- genfeed("rss", $rssurl, $desc, $params{page}, @list));
- $toping{$params{page}}=1 unless $config{rebuild};
- $feedlinks{$params{destpage}}=qq{<link rel="alternate" type="application/rss+xml" title="RSS" href="$rssurl" />};
- }
- if ($feeds && $atom) {
- will_render($params{page}, atompage($params{page}));
- writefile(atompage($params{page}), $config{destdir},
- genfeed("atom", $atomurl, $desc, $params{page}, @list));
- $toping{$params{page}}=1 unless $config{rebuild};
- $feedlinks{$params{destpage}}=qq{<link rel="alternate" type="application/atom+xml" title="Atom" href="$atomurl" />};
+ if ($feeds) {
+ if (exists $params{feedshow} && @list > $params{feedshow}) {
+ @list=@list[0..$params{feedshow} - 1];
+ }
+
+ if ($rss) {
+ will_render($params{page}, rsspage($params{page}));
+ writefile(rsspage($params{page}), $config{destdir},
+ genfeed("rss", $rssurl, $desc, $params{page}, @list));
+ $toping{$params{page}}=1 unless $config{rebuild};
+ $feedlinks{$params{destpage}}=qq{<link rel="alternate" type="application/rss+xml" title="RSS" href="$rssurl" />};
+ }
+ if ($atom) {
+ will_render($params{page}, atompage($params{page}));
+ writefile(atompage($params{page}), $config{destdir},
+ genfeed("atom", $atomurl, $desc, $params{page}, @list));
+ $toping{$params{page}}=1 unless $config{rebuild};
+ $feedlinks{$params{destpage}}=qq{<link rel="alternate" type="application/atom+xml" title="Atom" href="$atomurl" />};
+ }
}
return $ret;
eval q{use POSIX};
error($@) if $@;
- my $lc_time= POSIX::setlocale(&POSIX::LC_TIME);
+ my $lc_time=POSIX::setlocale(&POSIX::LC_TIME);
POSIX::setlocale(&POSIX::LC_TIME, "C");
my $ret=POSIX::strftime("%a, %d %b %Y %H:%M:%S %z", localtime($time));
POSIX::setlocale(&POSIX::LC_TIME, $lc_time);
eval q{use POSIX};
error($@) if $@;
- my $lc_time= POSIX::setlocale(&POSIX::LC_TIME);
+ my $lc_time=POSIX::setlocale(&POSIX::LC_TIME);
POSIX::setlocale(&POSIX::LC_TIME, "C");
my $ret=POSIX::strftime("%Y-%m-%dT%H:%M:%SZ", localtime($time));
POSIX::setlocale(&POSIX::LC_TIME, $lc_time);