]> sipb.mit.edu Git - ikiwiki.git/commitdiff
* Include <link rel> tag for RSS feeds, used by some aggregators and
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Wed, 6 Sep 2006 21:03:39 +0000 (21:03 +0000)
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>
Wed, 6 Sep 2006 21:03:39 +0000 (21:03 +0000)
  firefox to find the feed.

IkiWiki/Plugin/inline.pm
debian/changelog
doc/todo/RSS_links.mdwn
templates/page.tmpl

index 70d5be2353665b574752d3b23109150e0ece9340..6661ed2153cb25e3df7f4c85562a51b6bd7566c8 100644 (file)
@@ -10,6 +10,8 @@ use URI;
 sub import { #{{{
        IkiWiki::hook(type => "preprocess", id => "inline", 
                call => \&IkiWiki::preprocess_inline);
 sub import { #{{{
        IkiWiki::hook(type => "preprocess", id => "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.
        # This ensures each page only pings once and prevents slow
        # pings interrupting page builds.
        # 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.
@@ -22,6 +24,7 @@ sub import { #{{{
 package IkiWiki;
 
 my %toping;
 package IkiWiki;
 
 my %toping;
+my %rsslinks;
 
 sub yesno ($) { #{{{
        my $val=shift;
 
 sub yesno ($) { #{{{
        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}) {
                # 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}) {
        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);
                }
                $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;
        }
        
                $ret.=$linktemplate->output;
        }
        
@@ -146,11 +150,21 @@ sub preprocess_inline (@) { #{{{
                writefile(rsspage($params{page}), $config{destdir},
                        genrss($desc, $params{page}, @list));
                $toping{$params{page}}=1 unless $config{rebuild};
                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;
 } #}}}
 
        }
        
        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 get_inline_content ($$) { #{{{
        my $page=shift;
        my $destpage=shift;
index 8f9bfe2ec3baf2b36ef464407f0c8ca7000262c1..3e7c3e0825883782c070f20932f88e757194e9d1 100644 (file)
@@ -6,8 +6,10 @@ ikiwiki (1.25) UNRELEASED; urgency=low
     subversion repos and fixing some other issues.
   * Add support for tla, contributed by Clint Adams. Closes: #385936
   * Add support for mercurial, contributed by Emanuele Aina.
     subversion repos and fixing some other issues.
   * Add support for tla, contributed by Clint Adams. Closes: #385936
   * 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
 
index 9ee62ee4e0cedde2ca7a0c800dc78f6b51e95744..bfbd495e0aef30d061e0cd4f308f10786fadc2ec 100644 (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]]
index 650d90ed18099cd9747d6a0c7805f9e2efff32f0..15d39fbef21228a46a1a3ad60ad194eb45571cc9 100644 (file)
@@ -6,6 +6,9 @@
 <title><TMPL_VAR TITLE></title>
 <link rel="stylesheet" href="<TMPL_VAR BASEURL>style.css" type="text/css" />
 <link rel="stylesheet" href="<TMPL_VAR BASEURL>local.css" type="text/css" />
 <title><TMPL_VAR TITLE></title>
 <link rel="stylesheet" href="<TMPL_VAR BASEURL>style.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_VAR META>
 </TMPL_IF>
 <TMPL_IF NAME="META">
 <TMPL_VAR META>
 </TMPL_IF>