X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/e18a9d9a881897cbef82adfd992fe0a38c86d8d4..29e80b4eedadc2afd3f9f36d215076c82982971b:/IkiWiki/Plugin/parentlinks.pm?ds=sidebyside diff --git a/IkiWiki/Plugin/parentlinks.pm b/IkiWiki/Plugin/parentlinks.pm index 9095dabda..9f16dd082 100644 --- a/IkiWiki/Plugin/parentlinks.pm +++ b/IkiWiki/Plugin/parentlinks.pm @@ -4,24 +4,34 @@ package IkiWiki::Plugin::parentlinks; use warnings; use strict; -use IkiWiki 2.00; +use IkiWiki 3.00; -sub import { #{{{ +sub import { hook(type => "parentlinks", id => "parentlinks", call => \&parentlinks); hook(type => "pagetemplate", id => "parentlinks", call => \&pagetemplate); -} # }}} + hook(type => "getsetup", id => "parentlinks", call => \&getsetup); +} -sub getsetup () { #{{{ +sub getsetup () { return plugin => { safe => 1, rebuild => 1, + section => "core", }, -} #}}} +} -sub parentlinks ($) { #{{{ +sub parentlinks ($) { my $page=shift; + if (! length $page) { + # dynamic page + return { + url => IkiWiki::baseurl(undef), + page => $config{wikiname}, + }; + } + my @ret; my $path=""; my $title=$config{wikiname}; @@ -48,16 +58,18 @@ sub parentlinks ($) { #{{{ $i++; } return @ret; -} #}}} +} -sub pagetemplate (@) { #{{{ +sub pagetemplate (@) { my %params=@_; - my $page=$params{page}; my $template=$params{template}; - if ($template->query(name => "parentlinks")) { - $template->param(parentlinks => [parentlinks($page)]); + if ($template->query(name => "parentlinks") || + $template->query(name => "has_parentlinks")) { + my @links=parentlinks($params{page}); + $template->param(parentlinks => \@links); + $template->param(has_parentlinks => (@links > 0)); } -} # }}} +} 1