]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/inline.pm
remove debugging code
[ikiwiki.git] / IkiWiki / Plugin / inline.pm
index 4bdb14032eb89b055aa8da3207228d3cee5b75c0..d49993e5f44a396c8891901ccea9053172659b5b 100644 (file)
@@ -77,11 +77,17 @@ sub preprocess_inline (@) { #{{{
                $desc = $config{wikiname};
        }
        my $actions=yesno($params{actions});
+       if (exists $params{template}) {
+               $params{template}=~s/[^-_a-zA-Z0-9]+//g;
+       }
+       else {
+               $params{template} = $archive ? "archivepage" : "inlinepage";
+       }
 
        my @list;
        foreach my $page (keys %pagesources) {
                next if $page eq $params{page};
-               if (pagespec_match($page, $params{pages})) {
+               if (pagespec_match($page, $params{pages}, $params{page})) {
                        push @list, $page;
                }
        }
@@ -96,6 +102,10 @@ sub preprocess_inline (@) { #{{{
                return sprintf(gettext("unknown sort type %s"), $params{sort});
        }
 
+       if (yesno($params{reverse})) {
+               @list=reverse(@list);
+       }
+
        if (exists $params{skip}) {
                @list=@list[$params{skip} .. scalar @list - 1];
        }
@@ -127,10 +137,11 @@ sub preprocess_inline (@) { #{{{
                $ret.=$linktemplate->output;
        }
        
-       my $template=template(
-               ($archive ? "inlinepagetitle.tmpl" : "inlinepage.tmpl"),
-               blind_cache => 1,
-       ) unless $raw;
+       my @params=IkiWiki::template_params($params{template}.".tmpl", blind_cache => 1);
+       if (! @params) {
+               return sprintf(gettext("nonexistant template %s"), $params{template});
+       }
+       my $template=HTML::Template->new(@params) unless $raw;
        
        foreach my $page (@list) {
                my $file = $pagesources{$page};
@@ -162,7 +173,12 @@ sub preprocess_inline (@) { #{{{
                                            (length $config{cgiurl} ||
                                             exists $links{$page."/".$discussionlink})) {
                                                $template->param(have_actions => 1);
-                                               $template->param(discussionlink => htmllink($page, $params{page}, "Discussion", 1, 1));
+                                               $template->param(discussionlink =>
+                                                       htmllink($page,
+                                                               $params{page},
+                                                               gettext("Discussion"),
+                                                               noimageinline => 1,
+                                                               forcesubpage => 1));
                                        }
                                }
                                if (length $config{cgiurl} && defined $type) {
@@ -190,19 +206,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;