* Include <link rel> tag for RSS feeds, used by some aggregators and

firefox to find the feed.
master
joey 2006-09-06 21:03:39 +00:00
parent bd1eb38ed8
commit 7ba4a844a8
4 changed files with 26 additions and 5 deletions

View File

@ -10,6 +10,8 @@ use URI;
sub import { #{{{ sub import { #{{{
IkiWiki::hook(type => "preprocess", id => "inline", IkiWiki::hook(type => "preprocess", id => "inline",
call => \&IkiWiki::preprocess_inline); call => \&IkiWiki::preprocess_inline);
IkiWiki::hook(type => "pagetemplate", id => "inline",
call => \&IkiWiki::pagetemplate_inline);
# Hook to change to do pinging since it's called late. # Hook to change to do pinging since it's called late.
# This ensures each page only pings once and prevents slow # This ensures each page only pings once and prevents slow
# pings interrupting page builds. # pings interrupting page builds.
@ -22,6 +24,7 @@ sub import { #{{{
package IkiWiki; package IkiWiki;
my %toping; my %toping;
my %rsslinks;
sub yesno ($) { #{{{ sub yesno ($) { #{{{
my $val=shift; my $val=shift;
@ -62,22 +65,23 @@ sub preprocess_inline (@) { #{{{
add_depends($params{page}, $params{pages}); add_depends($params{page}, $params{pages});
my $rssurl=rsspage(basename($params{page}));
my $ret=""; my $ret="";
if (exists $params{rootpage} && $config{cgiurl}) { if (exists $params{rootpage} && $config{cgiurl}) {
# Add a blog post form, with a rss link button. # Add a blog post form, with a rss link button.
my $formtemplate=template("blogpost.tmpl", blind_cache => 1); my $formtemplate=template("blogpost.tmpl", blind_cache => 1);
$formtemplate->param(cgiurl => $config{cgiurl}); $formtemplate->param(cgiurl => $config{cgiurl});
$formtemplate->param(rootpage => $params{rootpage}); $formtemplate->param(rootpage => $params{rootpage});
if ($config{rss}) { if ($config{rss}) {
$formtemplate->param(rssurl => rsspage(basename($params{page}))); $formtemplate->param(rssurl => $rssurl);
} }
$ret.=$formtemplate->output; $ret.=$formtemplate->output;
} }
elsif ($config{rss} && $rss) { elsif ($config{rss} && $rss) {
# Add a rss link button. # Add a rss link button.
my $linktemplate=template("rsslink.tmpl", blind_cache => 1); my $linktemplate=template("rsslink.tmpl", blind_cache => 1);
$linktemplate->param(rssurl => rsspage(basename($params{page}))); $linktemplate->param(rssurl => $rssurl);
$ret.=$linktemplate->output; $ret.=$linktemplate->output;
} }
@ -146,11 +150,21 @@ sub preprocess_inline (@) { #{{{
writefile(rsspage($params{page}), $config{destdir}, writefile(rsspage($params{page}), $config{destdir},
genrss($desc, $params{page}, @list)); genrss($desc, $params{page}, @list));
$toping{$params{page}}=1 unless $config{rebuild}; $toping{$params{page}}=1 unless $config{rebuild};
$rsslinks{$params{destpage}}=qq{<link rel="alternate" type="application/rss+xml" title="RSS" href="$rssurl" />};
} }
return $ret; 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 ($$) { #{{{ sub get_inline_content ($$) { #{{{
my $page=shift; my $page=shift;
my $destpage=shift; my $destpage=shift;

4
debian/changelog vendored
View File

@ -6,8 +6,10 @@ ikiwiki (1.25) UNRELEASED; urgency=low
subversion repos and fixing some other issues. subversion repos and fixing some other issues.
* Add support for tla, contributed by Clint Adams. Closes: #385936 * Add support for tla, contributed by Clint Adams. Closes: #385936
* Add support for mercurial, contributed by Emanuele Aina. * Add support for mercurial, contributed by Emanuele Aina.
* Include <link rel> tag for RSS feeds, used by some aggregators and
firefox to find the feed.
-- Joey Hess <joeyh@debian.org> Wed, 6 Sep 2006 15:55:39 -0400 -- Joey Hess <joeyh@debian.org> Wed, 6 Sep 2006 16:42:21 -0400
ikiwiki (1.24) unstable; urgency=low ikiwiki (1.24) unstable; urgency=low

View File

@ -10,6 +10,8 @@ all of them.
For example, firefox requires the following: For example, firefox requires the following:
<link rel="alternate" type="application/rss+xml" title="RSS href="index.rss" /> <link rel="alternate" type="application/rss+xml" title="RSS" href="index.rss" />
[[todo/done]]
--[[Joey]] --[[Joey]]

View File

@ -6,6 +6,9 @@
<title><TMPL_VAR TITLE></title> <title><TMPL_VAR TITLE></title>
<link rel="stylesheet" href="<TMPL_VAR BASEURL>style.css" type="text/css" /> <link rel="stylesheet" href="<TMPL_VAR BASEURL>style.css" type="text/css" />
<link rel="stylesheet" href="<TMPL_VAR BASEURL>local.css" type="text/css" /> <link rel="stylesheet" href="<TMPL_VAR BASEURL>local.css" type="text/css" />
<TMPL_IF NAME="RSSLINK">
<TMPL_VAR RSSLINK>
</TMPL_IF>
<TMPL_IF NAME="META"> <TMPL_IF NAME="META">
<TMPL_VAR META> <TMPL_VAR META>
</TMPL_IF> </TMPL_IF>