]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Plugin/more.pm
Remember to run all the tests before committing!
[git.ikiwiki.info.git] / IkiWiki / Plugin / more.pm
index 667cd64154803c37e6aad977932767cadba4f5a6..6880e366df3ad40b9404d915b04c28e4d3e3bfa4 100644 (file)
@@ -3,29 +3,42 @@ package IkiWiki::Plugin::more;
 
 use warnings;
 use strict;
-use IkiWiki 2.00;
+use IkiWiki 3.00;
 
 my $linktext = gettext("more");
 
-sub import { #{{{
-       hook(type => "preprocess",  id => "more", call => \&preprocess);
-} # }}}
+sub import {
+       hook(type => "getsetup", id => "more", call => \&getsetup);
+       hook(type => "preprocess", id => "more", call => \&preprocess);
+}
+
+sub getsetup () {
+       return
+               plugin => {
+                       safe => 1,
+                       rebuild => undef,
+                       section => "widget",
+               },
+}
 
-sub preprocess (@) { #{{{
+sub preprocess (@) {
        my %params=@_;
 
        $params{linktext} = $linktext unless defined $params{linktext};
 
-       if ($params{page} ne $params{destpage}) {
+       if ($params{page} ne $params{destpage} &&
+           (! exists $params{pages} ||
+            pagespec_match($params{destpage}, $params{pages},
+                    location => $params{page}))) {
                return "\n".
                        htmllink($params{page}, $params{destpage}, $params{page},
                                linktext => $params{linktext},
                                anchor => "more");
        }
        else {
-               $params{text}=IkiWiki::preprocess($params{page}, $params{destpage},
-                       IkiWiki::filter($params{page}, $params{destpage}, $params{text}));
-               return "<a name=\"more\"></a>\n\n".$params{text};
+               return "<a name=\"more\"></a>\n\n".
+                       IkiWiki::preprocess($params{page}, $params{destpage},
+                               $params{text});
        }
 }