Package: ikiwiki
Version: 1.12
Severity: wishlist
Tags: patch

A new feature I'd like to request: [[inline pages=... rss="no"]], so
that you can include a generated page without creating an RSS feed for
the including page.  Also, allows to have several sets of inlined
pages and choose which one of them becomes RSS.  My blog.mdwn page
currently reads:
,----[ blog.mdwn ]
| [[inline pages="catlinks"]]
| [[inline pages="datelinks"]]
| 
| [[inline pages="articles/* !*/Discussion" show="10" rootpage="blog"]]
`----
  I had to put the catlinks and datelinks includes above, because the
last [[inline]] directive overwrites blog.rss.

  Patch follows (sorry it's not incremental -- it also includes the
date-limiting feature patch mentioned in #380680).  Basically, it adds
a new parameter named rss, defaulting to "yes", controlling whether to
generate a .rss page for the current inlining.

--- inline.pm~   2006-07-29 23:38:19.000000000 +0200
+++ inline.pm   2006-08-01 11:46:17.000000000 +0200
@@ -32,10 +32,25 @@
        if (! exists $params{archive}) {
                $params{archive}="no";
        }
-       if (! exists $params{show} && $params{archive} eq "no") {
+       if (! exists $params{rss}) {
+               $params{rss}="yes";
+       }
+       if (! exists $params{show} && ! exists $params{year} && 
$params{archive} eq "no") {
                $params{show}=10;
        }
-
+       if (exists $params{day} && ($params{day} !~ /^\d{2}$/ || ! exists 
$params{month})) {
+               return "";
+       }
+       if (exists $params{month} && ($params{month} !~ /^\d{2}$/ || ! exists 
$params{year})) {
+               return "";
+       }
+       if ($params{year} && $params{year} !~ /^\d{4}$/) {
+               return "";
+       }
+       if ($params{year}) {
+           delete $params{show} ;
+       }
+
        # Avoid nested inlines, to avoid loops etc.
        if ($processing_inline) {
                return "";
@@ -45,6 +60,11 @@
        my @list;
        foreach my $page (keys %pagesources) {
                next if $page eq $params{page};
+               my (undef,undef,undef,$d,$m,$y,undef,undef,undef) =
+                   gmtime($pagectime{$page}) ;
+               next if $params{year} && $y + 1900 != $params{year} ;
+               next if $params{month} && $m + 1 != $params{month} ;
+               next if $params{day} && $d != $params{day} ;
                if (globlist_match($page, $params{pages})) {
                        push @list, $page;
                }
@@ -63,12 +83,12 @@
                my $formtemplate=template("blogpost.tmpl", blind_cache => 1);
                $formtemplate->param(cgiurl => $config{cgiurl});
                $formtemplate->param(rootpage => $params{rootpage});
-               if ($config{rss}) {
+               if ($config{rss} && $params{rss} eq "yes") {
                        $formtemplate->param(rssurl => 
rsspage(basename($params{page})));
                }
                $ret.=$formtemplate->output;
        }
-       elsif ($config{rss}) {
+       elsif ($config{rss} && $params{rss} eq "yes") {
                # Add a rss link button.
                my $linktemplate=template("rsslink.tmpl", blind_cache => 1);
                $linktemplate->param(rssurl => 
rsspage(basename($params{page})));
@@ -105,7 +125,7 @@
        # TODO: should really add this to renderedfiles and call
        # check_overwrite, but currently renderedfiles
        # only supports listing one file per page.
-       if ($config{rss}) {
+       if ($config{rss} && $params{rss} eq "yes") {
                writefile(rsspage($params{page}), $config{destdir},
                        genrss($params{page}, @list));
                $toping{$params{page}}=1 unless $config{rebuild};


-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.17-1-k7
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)

Versions of packages ikiwiki depends on:
ii  gcc [c-compiler]              4:4.1.1-5  The GNU C compiler
ii  gcc-3.3 [c-compiler]          1:3.3.6-13 The GNU C compiler
ii  gcc-4.0 [c-compiler]          4.0.3-6    The GNU C compiler
ii  gcc-4.1 [c-compiler]          4.1.1-10   The GNU C compiler
ii  libc6-dev [libc-dev]          2.3.6-16   GNU C Library: Development Librari
ii  libcgi-formbuilder-perl       3.03.01-1  Easily generate and process statef
ii  libcgi-session-perl           4.14-1     Persistent session data in CGI app
ii  libhtml-scrubber-perl         0.08-3     Perl extension for scrubbing/sanit
ii  libhtml-template-perl         2.8-1      HTML::Template : A module for usin
ii  libmail-sendmail-perl         0.79-4     Send email from a perl script
ii  libtime-duration-perl         1.02-1     Time::Duration -- rounded or exact
ii  libtimedate-perl              1.1600-5   Time and date functions for Perl
ii  libxml-simple-perl            2.14-4     Perl module for reading and writin
ii  markdown                      1.0.1-3    Text-to-HTML conversion tool
ii  perl                          5.8.8-6    Larry Wall's Practical Extraction 

Versions of packages ikiwiki recommends:
ii  hyperestraier                 1.3.5-1    a full-text search system for comm
ii  subversion                    1.3.2-5    Advanced version control system

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to