diff options
Diffstat (limited to 'IkiWiki/Plugin/more.pm')
-rw-r--r-- | IkiWiki/Plugin/more.pm | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/IkiWiki/Plugin/more.pm b/IkiWiki/Plugin/more.pm new file mode 100644 index 000000000..6880e366d --- /dev/null +++ b/IkiWiki/Plugin/more.pm @@ -0,0 +1,45 @@ +#!/usr/bin/perl +package IkiWiki::Plugin::more; + +use warnings; +use strict; +use IkiWiki 3.00; + +my $linktext = gettext("more"); + +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 (@) { + my %params=@_; + + $params{linktext} = $linktext unless defined $params{linktext}; + + 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 { + return "<a name=\"more\"></a>\n\n". + IkiWiki::preprocess($params{page}, $params{destpage}, + $params{text}); + } +} + +1 |