aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2007-02-05 21:54:36 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2007-02-05 21:54:36 +0000
commit46f0f5bdc23139f0a382e608904c2acc8a774e73 (patch)
treeb489f518a3c29bc79b4adb7f4d923d6e01b2dd41
parent4133ec4fabf085a31c167093bf296d0b860f86d9 (diff)
downloadikiwiki-46f0f5bdc23139f0a382e608904c2acc8a774e73.tar
ikiwiki-46f0f5bdc23139f0a382e608904c2acc8a774e73.tar.gz
* Add feedshow option to allow reducing the number of items included in
an rss or atom feed.
-rw-r--r--IkiWiki/Plugin/inline.pm32
-rw-r--r--debian/changelog4
-rw-r--r--doc/examples/blog/posts.mdwn2
-rw-r--r--doc/plugins/inline.mdwn4
-rw-r--r--doc/todo/Shorter_feeds.mdwn9
5 files changed, 35 insertions, 16 deletions
diff --git a/IkiWiki/Plugin/inline.pm b/IkiWiki/Plugin/inline.pm
index ec1cf0970..06b74b3fa 100644
--- a/IkiWiki/Plugin/inline.pm
+++ b/IkiWiki/Plugin/inline.pm
@@ -190,19 +190,25 @@ sub preprocess_inline (@) { #{{{
}
}
- if ($feeds && $rss) {
- will_render($params{page}, rsspage($params{page}));
- writefile(rsspage($params{page}), $config{destdir},
- genfeed("rss", $rssurl, $desc, $params{page}, @list));
- $toping{$params{page}}=1 unless $config{rebuild};
- $feedlinks{$params{destpage}}=qq{<link rel="alternate" type="application/rss+xml" title="RSS" href="$rssurl" />};
- }
- if ($feeds && $atom) {
- will_render($params{page}, atompage($params{page}));
- writefile(atompage($params{page}), $config{destdir},
- genfeed("atom", $atomurl, $desc, $params{page}, @list));
- $toping{$params{page}}=1 unless $config{rebuild};
- $feedlinks{$params{destpage}}=qq{<link rel="alternate" type="application/atom+xml" title="Atom" href="$atomurl" />};
+ if ($feeds) {
+ if (exists $params{feedshow} && @list > $params{feedshow}) {
+ @list=@list[0..$params{feedshow} - 1];
+ }
+
+ if ($rss) {
+ will_render($params{page}, rsspage($params{page}));
+ writefile(rsspage($params{page}), $config{destdir},
+ genfeed("rss", $rssurl, $desc, $params{page}, @list));
+ $toping{$params{page}}=1 unless $config{rebuild};
+ $feedlinks{$params{destpage}}=qq{<link rel="alternate" type="application/rss+xml" title="RSS" href="$rssurl" />};
+ }
+ if ($atom) {
+ will_render($params{page}, atompage($params{page}));
+ writefile(atompage($params{page}), $config{destdir},
+ genfeed("atom", $atomurl, $desc, $params{page}, @list));
+ $toping{$params{page}}=1 unless $config{rebuild};
+ $feedlinks{$params{destpage}}=qq{<link rel="alternate" type="application/atom+xml" title="Atom" href="$atomurl" />};
+ }
}
return $ret;
diff --git a/debian/changelog b/debian/changelog
index 4c45fbea7..fb3afc21e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -15,8 +15,10 @@ ikiwiki (1.42) UNRELEASED; urgency=low
* Lots of CGI code reorg and cleanup.
* Avoid using lots of memory when copying large non-html files.
Yes, you can keep videos in the wiki..
+ * Add feedshow option to allow reducing the number of items included in
+ an rss or atom feed.
- -- Joey Hess <joeyh@debian.org> Fri, 2 Feb 2007 21:59:04 -0500
+ -- Joey Hess <joeyh@debian.org> Mon, 5 Feb 2007 16:51:10 -0500
ikiwiki (1.41) unstable; urgency=low
diff --git a/doc/examples/blog/posts.mdwn b/doc/examples/blog/posts.mdwn
index e4b053d8f..f5b128df0 100644
--- a/doc/examples/blog/posts.mdwn
+++ b/doc/examples/blog/posts.mdwn
@@ -1,3 +1,3 @@
Here is a full list of posts to my [[blog|index]].
-[[inline pages="*blog/posts/* and !*/Discussion" archive=yes quick=yes]]
+[[inline pages="*blog/posts/* and !*/Discussion" archive=yes feedshow=10 quick=yes]]
diff --git a/doc/plugins/inline.mdwn b/doc/plugins/inline.mdwn
index cfea8006e..cd76fd286 100644
--- a/doc/plugins/inline.mdwn
+++ b/doc/plugins/inline.mdwn
@@ -18,6 +18,10 @@ directive:
* `show` - Specify the maximum number of matching pages to inline.
Default is 10, unless archiving, when the default is to show all.
Set to 0 to show all matching pages.
+* `feedshow` - Specify the maximum number of matching pages to include in
+ the rss/atom feeds. The default is the same as the `show` value above,
+ and it cannot be larger than that value, but can be set to a smaller
+ value to avoid producing excessively large feed files.
* `skip` - Specify a number of pages to skip displaying. Can be useful
to produce a feed that only shows archived pages.
* `rss` - controls generation of an rss feed. On by default if the wiki is
diff --git a/doc/todo/Shorter_feeds.mdwn b/doc/todo/Shorter_feeds.mdwn
index 0966bc216..2e0b0fab9 100644
--- a/doc/todo/Shorter_feeds.mdwn
+++ b/doc/todo/Shorter_feeds.mdwn
@@ -1,4 +1,11 @@
-It should be possible to control the number of items included in a feed independently of the number of items included on the page (the latter, however, possibly setting an upper limit). This would be particularly useful on archive pages providing a feed. Presently the feed grows huge, if the archive page has no limit on the entries listed on it (as in the list of [all entries][ionfaq] in the Ion FAQ). An alternative useful filter would be filtering by the age of the page.
+It should be possible to control the number of items included in a feed
+independently of the number of items included on the page (the latter,
+however, possibly setting an upper limit). This would be particularly
+useful on archive pages providing a feed. Presently the feed grows huge, if
+the archive page has no limit on the entries listed on it (as in the list
+of [all entries][ionfaq] in the Ion FAQ). An alternative useful filter
+would be filtering by the age of the page.
[ionfaq]: http://iki.fi/tuomov/ion/faq/entries.html
+> [[todo/Done]], option name is `feedshow` --[[Joey]]