plugin => {
safe => 1,
rebuild => undef,
+ section => "core",
},
rss => {
type => "boolean",
if ($params{show}) {
$num=$params{show};
}
- if ($params{feedshow} && $num < $params{feedshow}) {
+ if ($params{feedshow} && $num < $params{feedshow} && $num > 0) {
$num=$params{feedshow};
}
- if ($params{skip}) {
+ if ($params{skip} && $num) {
$num+=$params{skip};
}
filter => sub { $_[0] eq $params{page} },
sort => exists $params{sort} ? $params{sort} : "age",
reverse => yesno($params{reverse}),
- num => $num,
+ ($num ? (num => $num) : ()),
);
}
my $file = $pagesources{$page};
my $type = pagetype($file);
if ($config{discussion}) {
- if ($page !~ /.*\/\Q$config{discussionpage}\E$/ &&
+ if ($page !~ /.*\/\Q$config{discussionpage}\E$/i &&
(length $config{cgiurl} ||
- exists $links{$page."/".$config{discussionpage}})) {
+ exists $pagesources{$page."/".lc($config{discussionpage})})) {
$template->param(have_actions => 1);
$template->param(discussionlink =>
htmllink($page,
forcesubpage => 1));
}
}
- if (length $config{cgiurl} && defined $type) {
+ if (length $config{cgiurl} &&
+ defined $type &&
+ IkiWiki->can("cgi_editpage")) {
$template->param(have_actions => 1);
$template->param(editurl => cgiurl(do => "edit", page => $page));
+
}
}
}
}
+ clear_inline_content_cache();
+
return $ret if $raw || $nested;
push @inline, $ret;
return "<div class=\"inline\" id=\"$#inline\"></div>\n\n";
if exists $feedlinks{$page} && $template->query(name => "feedlinks");
}
+{
+my %inline_content;
+my $cached_destpage="";
+
sub get_inline_content ($$) {
my $page=shift;
my $destpage=shift;
+ if (exists $inline_content{$page} && $cached_destpage eq $destpage) {
+ return $inline_content{$page};
+ }
+
my $file=$pagesources{$page};
my $type=pagetype($file);
+ my $ret="";
if (defined $type) {
$nested++;
- my $ret=htmlize($page, $destpage, $type,
+ $ret=htmlize($page, $destpage, $type,
linkify($page, $destpage,
preprocess($page, $destpage,
filter($page, $destpage,
readfile(srcfile($file))))));
$nested--;
- return $ret;
}
- else {
- return "";
+
+ if ($cached_destpage ne $destpage) {
+ clear_inline_content_cache();
+ $cached_destpage=$destpage;
}
+ return $inline_content{$page}=$ret;
+}
+
+sub clear_inline_content_cache () {
+ %inline_content=();
+}
+
}
sub date_822 ($) {
if (exists $pagestate{$p}) {
if (exists $pagestate{$p}{meta}{guid}) {
- $itemtemplate->param(guid => $pagestate{$p}{meta}{guid});
+ eval q{use HTML::Entities};
+ $itemtemplate->param(guid => HTML::Entities::encode_numeric($pagestate{$p}{meta}{guid}));
}
if (exists $pagestate{$p}{meta}{updated}) {