diff options
-rw-r--r-- | IkiWiki/Plugin/inline.pm | 32 | ||||
-rw-r--r-- | debian/changelog | 4 | ||||
-rw-r--r-- | doc/examples/blog/posts.mdwn | 2 | ||||
-rw-r--r-- | doc/plugins/inline.mdwn | 4 | ||||
-rw-r--r-- | doc/todo/Shorter_feeds.mdwn | 9 |
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]] |