use warnings;
use strict;
use IkiWiki;
+use IkiWiki::Render; # for displaytime
use URI;
sub import { #{{{
- IkiWiki::hook(type => "preprocess", id => "inline",
+ hook(type => "preprocess", id => "inline",
call => \&IkiWiki::preprocess_inline);
+ hook(type => "pagetemplate", id => "inline",
+ call => \&IkiWiki::pagetemplate_inline);
# Hook to change to do pinging since it's called late.
# This ensures each page only pings once and prevents slow
# pings interrupting page builds.
- IkiWiki::hook(type => "change", id => "inline",
+ hook(type => "change", id => "inline",
call => \&IkiWiki::pingurl);
} # }}}
package IkiWiki;
my %toping;
+my %rsslinks;
sub yesno ($) { #{{{
my $val=shift;
add_depends($params{page}, $params{pages});
+ my $rssurl=rsspage(basename($params{page}));
my $ret="";
-
+
if (exists $params{rootpage} && $config{cgiurl}) {
# Add a blog post form, with a rss link button.
my $formtemplate=template("blogpost.tmpl", blind_cache => 1);
$formtemplate->param(cgiurl => $config{cgiurl});
$formtemplate->param(rootpage => $params{rootpage});
if ($config{rss}) {
- $formtemplate->param(rssurl => rsspage(basename($params{page})));
+ $formtemplate->param(rssurl => $rssurl);
}
$ret.=$formtemplate->output;
}
elsif ($config{rss} && $rss) {
# Add a rss link button.
my $linktemplate=template("rsslink.tmpl", blind_cache => 1);
- $linktemplate->param(rssurl => rsspage(basename($params{page})));
+ $linktemplate->param(rssurl => $rssurl);
$ret.=$linktemplate->output;
}
# is to let the meta plugin get page title info; so stop
# calling this next line then once the meta plugin can
# store that accross runs (also tags plugin).
- my $content=get_inline_content($page, $params{page});
+ my $content=get_inline_content($page, $params{destpage});
# Don't use htmllink because this way the title is separate
# and can be overridden by other plugins.
my $link=htmlpage(bestlink($params{page}, $page));
- $link=abs2rel($link, dirname($params{page}));
+ $link=abs2rel($link, dirname($params{destpage}));
$template->param(pageurl => $link);
$template->param(title => pagetitle(basename($page)));
$template->param(content => $content);
if ($actions) {
my $file = $pagesources{$page};
my $type = pagetype($file);
- $template->param(have_actions => 1);
if ($config{discussion}) {
+ $template->param(have_actions => 1);
$template->param(discussionlink => htmllink($page, $page, "Discussion", 1, 1));
}
if (length $config{cgiurl} && defined $type) {
+ $template->param(have_actions => 1);
$template->param(editurl => cgiurl(do => "edit", page => $page));
}
}
writefile(rsspage($params{page}), $config{destdir},
genrss($desc, $params{page}, @list));
$toping{$params{page}}=1 unless $config{rebuild};
+ $rsslinks{$params{destpage}}=qq{<link rel="alternate" type="application/rss+xml" title="RSS" href="$rssurl" />};
}
return $ret;
} #}}}
+sub pagetemplate_inline (@) { #{{{
+ my %params=@_;
+ my $page=$params{page};
+ my $template=$params{template};
+
+ $template->param(rsslink => $rsslinks{$page})
+ if exists $rsslinks{$page} && $template->query(name => "rsslink");
+} #}}}
+
sub get_inline_content ($$) { #{{{
my $page=shift;
my $destpage=shift;
} #}}}
sub genrss ($$@) { #{{{
- my $desc = shift;
+ my $desc=shift;
my $page=shift;
my @pages=@_;
- my $url=URI->new(encode_utf8("$config{url}/".htmlpage($page)));
+ my $url=URI->new(encode_utf8($config{url}."/".htmlpage($page)));
my $itemtemplate=template("rssitem.tmpl", blind_cache => 1);
my $content="";