(no commit message)
[ikiwiki] / IkiWiki / Plugin / more.pm
1 #!/usr/bin/perl
2 package IkiWiki::Plugin::more;
3
4 use warnings;
5 use strict;
6 use IkiWiki 3.00;
7
8 my $linktext = gettext("more");
9
10 sub import {
11         hook(type => "getsetup", id => "more", call => \&getsetup);
12         hook(type => "preprocess", id => "more", call => \&preprocess);
13 }
14
15 sub getsetup () {
16         return
17                 plugin => {
18                         safe => 1,
19                         rebuild => undef,
20                         section => "widget",
21                 },
22 }
23
24 sub preprocess (@) {
25         my %params=@_;
26
27         $params{linktext} = $linktext unless defined $params{linktext};
28
29         if ($params{page} ne $params{destpage} &&
30             (! exists $params{pages} ||
31              pagespec_match($params{destpage}, $params{pages},
32                      location => $params{page}))) {
33                 return "\n".
34                         htmllink($params{page}, $params{destpage}, $params{page},
35                                 linktext => $params{linktext},
36                                 anchor => "more");
37         }
38         else {
39                 return "<a name=\"more\"></a>\n\n".
40                         IkiWiki::preprocess($params{page}, $params{destpage},
41                                 $params{text});
42         }
43 }
44
45 1