inline: pass the Atom/RSS titles to the templates
authorGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
Sun, 2 Jan 2011 17:23:45 +0000 (18:23 +0100)
committerJoey Hess <joey@kitenet.net>
Thu, 6 Jan 2011 18:40:33 +0000 (14:40 -0400)
The default templates are also updated to make use of this information.
The rel="alternate" attribute is also inserted, for completeness.
(cherry picked from commit 618ade535e6a7967a510d9e210edaef3d37cc9bc)

IkiWiki/Plugin/inline.pm
templates/blogpost.tmpl
templates/feedlink.tmpl

index 7c5da73..e5a5c11 100644 (file)
@@ -290,8 +290,17 @@ sub preprocess_inline (@) {
                }
        }
 
-       my $rssurl=abs2rel($feedbase."rss".$feednum, dirname(htmlpage($params{destpage}))) if $feeds && $rss;
-       my $atomurl=abs2rel($feedbase."atom".$feednum, dirname(htmlpage($params{destpage}))) if $feeds && $atom;
+       my ($rssurl, $atomurl, $rssdesc, $atomdesc);
+       if ($feeds) {
+               if ($rss) {
+                       $rssurl=abs2rel($feedbase."rss".$feednum, dirname(htmlpage($params{destpage})));
+                       $rssdesc = "$desc (RSS)";
+               }
+               if ($atom) {
+                       $atomurl=abs2rel($feedbase."atom".$feednum, dirname(htmlpage($params{destpage})));
+                       $atomdesc = "$desc (Atom)";
+               }
+       }
 
        my $ret="";
 
@@ -302,8 +311,16 @@ sub preprocess_inline (@) {
                my $formtemplate=template_depends("blogpost.tmpl", $params{page}, blind_cache => 1);
                $formtemplate->param(cgiurl => IkiWiki::cgiurl());
                $formtemplate->param(rootpage => rootpage(%params));
-               $formtemplate->param(rssurl => $rssurl) if $feeds && $rss;
-               $formtemplate->param(atomurl => $atomurl) if $feeds && $atom;
+               if ($feeds) {
+                       if ($rss) {
+                               $formtemplate->param(rssurl => $rssurl);
+                               $formtemplate->param(rssdesc => $rssdesc);
+                       }
+                       if ($atom) {
+                               $formtemplate->param(atomurl => $atomurl);
+                               $formtemplate->param(atomdesc => $atomdesc);
+                       }
+               }
                if (exists $params{postformtext}) {
                        $formtemplate->param(postformtext =>
                                $params{postformtext});
@@ -321,8 +338,14 @@ sub preprocess_inline (@) {
        elsif ($feeds && !$params{preview} && ($emptyfeeds || @feedlist)) {
                # Add feed buttons.
                my $linktemplate=template_depends("feedlink.tmpl", $params{page}, blind_cache => 1);
-               $linktemplate->param(rssurl => $rssurl) if $rss;
-               $linktemplate->param(atomurl => $atomurl) if $atom;
+               if ($rss) {
+                       $linktemplate->param(rssurl => $rssurl);
+                       $linktemplate->param(rssdesc => $rssdesc);
+               }
+               if ($atom) {
+                       $linktemplate->param(atomurl => $atomurl);
+                       $linktemplate->param(atomdesc => $atomdesc);
+               }
                $ret.=$linktemplate->output;
        }
        
@@ -419,7 +442,7 @@ sub preprocess_inline (@) {
                                        genfeed("rss",
                                                $config{url}."/".$rssp, $desc, $params{guid}, $params{destpage}, @feedlist));
                                $toping{$params{destpage}}=1 unless $config{rebuild};
-                               $feedlinks{$params{destpage}}.=qq{<link rel="alternate" type="application/rss+xml" title="$desc (RSS)" href="$rssurl" />};
+                               $feedlinks{$params{destpage}}.=qq{<link rel="alternate" type="application/rss+xml" title="$rssdesc" href="$rssurl" />};
                        }
                }
                if ($atom) {
@@ -429,7 +452,7 @@ sub preprocess_inline (@) {
                                writefile($atomp, $config{destdir},
                                        genfeed("atom", $config{url}."/".$atomp, $desc, $params{guid}, $params{destpage}, @feedlist));
                                $toping{$params{destpage}}=1 unless $config{rebuild};
-                               $feedlinks{$params{destpage}}.=qq{<link rel="alternate" type="application/atom+xml" title="$desc (Atom)" href="$atomurl" />};
+                               $feedlinks{$params{destpage}}.=qq{<link rel="alternate" type="application/atom+xml" title="$atomdesc" href="$atomurl" />};
                        }
                }
        }
index 5a31e3f..754f24b 100644 (file)
@@ -1,10 +1,10 @@
 <form action="<TMPL_VAR CGIURL>" method="get">
 <div id="blogform">
 <TMPL_IF RSSURL>
-<a class="feedbutton" type="application/rss+xml" href="<TMPL_VAR RSSURL>">RSS</a>
+<a class="feedbutton" type="application/rss+xml" rel="alternate" title="<TMPL_VAR RSSDESC>" href="<TMPL_VAR RSSURL>">RSS</a>
 </TMPL_IF>
 <TMPL_IF ATOMURL>
-<a class="feedbutton" type="application/atom+xml" href="<TMPL_VAR ATOMURL>">Atom</a>
+<a class="feedbutton" type="application/atom+xml" rel="alternate" title="<TMPL_VAR ATOMDESC>" href="<TMPL_VAR ATOMURL>">Atom</a>
 </TMPL_IF>
 <input type="hidden" name="do" value="blog" />
 <input type="hidden" name="from" value="<TMPL_VAR ROOTPAGE>" />
index be8637f..fdad7f9 100644 (file)
@@ -1,8 +1,8 @@
 <div id="feedlink">
 <TMPL_IF RSSURL>
-<a class="feedbutton" type="application/rss+xml" href="<TMPL_VAR RSSURL>">RSS</a>
+<a class="feedbutton" type="application/rss+xml" rel="alternate" title="<TMPL_VAR RSSDESC>" href="<TMPL_VAR RSSURL>">RSS</a>
 </TMPL_IF>
 <TMPL_IF ATOMURL>
-<a class="feedbutton" type="application/atom+xml" href="<TMPL_VAR ATOMURL>">Atom</a>
+<a class="feedbutton" type="application/atom+xml" rel="alternate" title="<TMPL_VAR ATOMDESC>" href="<TMPL_VAR ATOMURL>">Atom</a>
 </TMPL_IF>
 </div>