summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-07-31 00:34:18 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-07-31 00:34:18 +0000
commite4ccc4f3b09aaaa4f64bdba1d6ffff24e924fd20 (patch)
tree4d52652fd1361095964691d4662c5a76660e6015
parent908e004b4c5a1970246afd055a34dea4ea146b3e (diff)
fix title metadata on blogs, reorg needed to do it, simplified tag some
-rw-r--r--IkiWiki/Plugin/inline.pm31
-rw-r--r--IkiWiki/Plugin/tag.pm17
-rw-r--r--debian/changelog3
-rw-r--r--doc/templates.mdwn1
-rw-r--r--templates/rssitem.tmpl12
-rw-r--r--templates/rsspage.tmpl25
6 files changed, 43 insertions, 46 deletions
diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
index b06470bfe..110410abc 100644
--- a/IkiWiki/Plugin/inline.pm
+++ b/IkiWiki/Plugin/inline.pm
@@ -88,7 +88,7 @@ sub preprocess_inline (@) { #{{{
my $link=htmlpage(bestlink($params{page}, $page));
$link=abs2rel($link, dirname($params{page}));
$template->param(pageurl => $link);
- $template->param(title => $page);
+ $template->param(title => pagetitle(basename($page)));
$template->param(content => get_inline_content($page, $params{page}))
if $params{archive} eq "no";
$template->param(ctime => displaytime($pagectime{$page}));
@@ -161,25 +161,32 @@ sub genrss ($@) { #{{{
my $url="$config{url}/".htmlpage($page);
- my $template=template("rsspage.tmpl", blind_cache => 1,
+ my $itemtemplate=template("rssitem.tmpl", blind_cache => 1,
die_on_bad_params => 0);
-
- my @items;
+ my $content="";
foreach my $p (@pages) {
- push @items, {
- itemtitle => pagetitle(basename($p)),
- itemurl => "$config{url}/$renderedfiles{$p}",
- itempubdate => date_822($pagectime{$p}),
- itemcontent => absolute_urls(get_inline_content($p, $page), $url),
- page => $p, # used by category adding code in tag plugin
- } if exists $renderedfiles{$p};
+ next unless exists $renderedfiles{$p};
+
+ $itemtemplate->param(
+ title => pagetitle(basename($p)),
+ url => "$config{url}/$renderedfiles{$p}",
+ pubdate => date_822($pagectime{$p}),
+ content => absolute_urls(get_inline_content($p, $page), $url),
+ );
+ run_hooks(pagetemplate => sub {
+ shift->(page => $p, destpage => $page,
+ template => $itemtemplate);
+ });
+ $content.=$itemtemplate->output;
+ $itemtemplate->clear_params;
}
+ my $template=template("rsspage.tmpl", blind_cache => 1);
$template->param(
title => $config{wikiname},
wikiname => $config{wikiname},
pageurl => $url,
- items => \@items,
+ content => $content,
);
run_hooks(pagetemplate => sub {
diff --git a/IkiWiki/Plugin/tag.pm b/IkiWiki/Plugin/tag.pm
index 2aa70d406..3de09a767 100644
--- a/IkiWiki/Plugin/tag.pm
+++ b/IkiWiki/Plugin/tag.pm
@@ -65,19 +65,10 @@ sub pagetemplate (@) { #{{{
}, @{$tags{$page}}
]) if exists $tags{$page} && @{$tags{$page}} && $template->query(name => "tags");
- if ($template->query(name => "items")) {
- # It's an rss template. Modify each item in the feed,
- # adding any categories based on the page for that item.
- foreach my $item (@{$template->param("items")}) {
- my $p=$item->{page};
- if (exists $tags{$p} && @{$tags{$p}}) {
- $item->{categories}=[];
- foreach my $tag (@{$tags{$p}}) {
- push @{$item->{categories}}, {
- category => $tag,
- };
- }
- }
+ if ($template->query(name => "pubdate")) {
+ # It's an rss template. Add any categories.
+ if (exists $tags{$page} && @{$tags{$page}}) {
+ $template->param(categories => [map { category => $_ }, @{$tags{$page}}]);
}
}
} # }}}
diff --git a/debian/changelog b/debian/changelog
index a0989cb74..b42371969 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -20,8 +20,7 @@ ikiwiki (1.13) UNRELEASED; urgency=low
* Avoid outputting duplicate meta info.
* Include title metadata on aggregated posts for capitalised and un-munged
titles.
- * Title metadata of inlined pages now shows up in blogs, although not yet
- in their rss feeds.
+ * Title metadata of inlined pages now shows up in blogs and rss feeds.
-- Joey Hess <joeyh@debian.org> Sun, 30 Jul 2006 19:22:11 -0400
diff --git a/doc/templates.mdwn b/doc/templates.mdwn
index e500638f4..55e6ec6c8 100644
--- a/doc/templates.mdwn
+++ b/doc/templates.mdwn
@@ -17,6 +17,7 @@ It ships with some basic templates which can be customised:
* `passwordmail.tmpl` - Not a html template, this is used to
generate the mail with the user's password in it.
* `rsspage.tmpl` - Used for generating rss feeds for [[blog]]s.
+* `rssitem.tmpl` - Used for generating individual items on rss feeds.
* `inlinepage.tmpl` - Used for adding a page inline in a blog
page.
* `inlinepagetitle.tmpl` - Used for listing a page inline in a blog
diff --git a/templates/rssitem.tmpl b/templates/rssitem.tmpl
new file mode 100644
index 000000000..421600591
--- /dev/null
+++ b/templates/rssitem.tmpl
@@ -0,0 +1,12 @@
+<item>
+ <title><TMPL_VAR TITLE ESCAPE=HTML></title>
+ <guid><TMPL_VAR URL></guid>
+ <link><TMPL_VAR URL></link>
+ <TMPL_IF NAME="CATEGORIES">
+ <TMPL_LOOP NAME="CATEGORIES">
+ <category><TMPL_VAR NAME=CATEGORY></category>
+ </TMPL_LOOP>
+ </TMPL_IF>
+ <pubDate><TMPL_VAR PUBDATE></pubDate>
+ <description><![CDATA[<TMPL_VAR CONTENT>]]></description>
+</item>
diff --git a/templates/rsspage.tmpl b/templates/rsspage.tmpl
index 55b1222ac..e7676ebbd 100644
--- a/templates/rsspage.tmpl
+++ b/templates/rsspage.tmpl
@@ -1,22 +1,9 @@
<?xml version="1.0"?>
<rss version="2.0">
- <channel>
- <title><TMPL_VAR TITLE ESCAPE=HTML></title>
- <link><TMPL_VAR PAGEURL></link>
- <description><TMPL_VAR WIKINAME ESCAPE=HTML></description>
- <TMPL_LOOP NAME="ITEMS">
- <item>
- <title><TMPL_VAR ITEMTITLE ESCAPE=HTML></title>
- <guid><TMPL_VAR ITEMURL></guid>
- <link><TMPL_VAR ITEMURL></link>
- <TMPL_IF NAME="CATEGORIES">
- <TMPL_LOOP NAME="CATEGORIES">
- <category><TMPL_VAR NAME=CATEGORY></category>
- </TMPL_LOOP>
- </TMPL_IF>
- <pubDate><TMPL_VAR ITEMPUBDATE></pubDate>
- <description><![CDATA[<TMPL_VAR ITEMCONTENT>]]></description>
- </item>
- </TMPL_LOOP>
- </channel>
+<channel>
+<title><TMPL_VAR TITLE ESCAPE=HTML></title>
+<link><TMPL_VAR PAGEURL></link>
+<description><TMPL_VAR WIKINAME ESCAPE=HTML></description>
+<TMPL_VAR CONTENT>
+</channel>
</rss>