From 7dbb05929a4110dca4af762dc7ce034a5a64c038 Mon Sep 17 00:00:00 2001 From: Giuseppe Bilotta Date: Sat, 1 Jan 2011 22:39:36 +0100 Subject: [PATCH] inline: improve default feed title and description The feed title is always derived from the page title, and for the feed description we use the description from meta (if found) or a customizable combination of wiki name and page title otherwise. --- IkiWiki/Plugin/inline.pm | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm index d89e14197..c4c305c53 100644 --- a/IkiWiki/Plugin/inline.pm +++ b/IkiWiki/Plugin/inline.pm @@ -86,6 +86,13 @@ sub getsetup () { safe => 1, rebuild => 0, }, + feed_desc_fmt => { + type => "string", + example => '%1$s\'s %2$s', + description => "format string for the default feed description, using the wiki name and page title as parameters", + safe => 0, + rebuild => 1, + } } sub checkconfig () { @@ -169,12 +176,25 @@ sub preprocess_inline (@) { if (! exists $params{feedshow} && exists $params{show}) { $params{feedshow}=$params{show}; } - my $desc; + + my ($page, $desc, $feedtitle); + $page = $params{page}; + if ($pagestate{$page}{meta} && $pagestate{$page}{meta}{title}) { + $feedtitle = $pagestate{$page}{meta}{title}; + } else { + $feedtitle = pagetitle(basename($page)); + } if (exists $params{description}) { $desc = $params{description} - } - else { - $desc = $config{wikiname}; + } elsif ($pagestate{$page}{meta} && $pagestate{$page}{meta}{description}) { + $desc = $pagestate{$page}{meta}{description}; + } else { + if ($page =~ m!^/?index(?:$|\.)!) { + $desc = $config{wikiname}; + } else { + my $descfmt = defined $config{feed_desc_fmt} ? $config{feed_desc_fmt} : '%1$s\'s %2$s'; + $desc = sprintf($descfmt, $config{wikiname}, $feedtitle); + } } my $actions=yesno($params{actions}); if (exists $params{template}) { @@ -440,7 +460,7 @@ sub preprocess_inline (@) { if (! $params{preview}) { writefile($rssp, $config{destdir}, genfeed("rss", - $config{url}."/".$rssp, $desc, $params{guid}, $params{destpage}, @feedlist)); + $config{url}."/".$rssp, $feedtitle, $desc, $params{guid}, $params{destpage}, @feedlist)); $toping{$params{destpage}}=1 unless $config{rebuild}; $feedlinks{$params{destpage}}.=qq{}; } @@ -450,7 +470,7 @@ sub preprocess_inline (@) { will_render($params{destpage}, $atomp); if (! $params{preview}) { writefile($atomp, $config{destdir}, - genfeed("atom", $config{url}."/".$atomp, $desc, $params{guid}, $params{destpage}, @feedlist)); + genfeed("atom", $config{url}."/".$atomp, $feedtitle, $desc, $params{guid}, $params{destpage}, @feedlist)); $toping{$params{destpage}}=1 unless $config{rebuild}; $feedlinks{$params{destpage}}.=qq{}; } @@ -587,6 +607,7 @@ sub absolute_urls ($$) { sub genfeed ($$$$$@) { my $feedtype=shift; my $feedurl=shift; + my $feedtitle=shift; my $feeddesc=shift; my $guid=shift; my $page=shift; @@ -660,7 +681,7 @@ sub genfeed ($$$$$@) { my $template=template_depends($feedtype."page.tmpl", $page, blind_cache => 1); $template->param( - title => $page ne "index" ? pagetitle($page) : $config{wikiname}, + title => $feedtitle, wikiname => $config{wikiname}, pageurl => $url, content => $content, -- 2.32.0.93.g670b81a890