#!/usr/bin/perl
-# -*- cperl-indent-level: 8; -*-
# Ikiwiki parentlinks plugin.
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);
-} # }}}
+}
-sub parentlinks ($) { #{{{
+sub getsetup () {
+ return
+ plugin => {
+ safe => 1,
+ rebuild => 1,
+ },
+}
+
+sub parentlinks ($) {
my $page=shift;
my @ret;
$depth=$i;
$height=($pagedepth - $depth);
push @ret, {
- url => urlto($path, $page),
- page => $title,
- depth => $depth,
- height => $height,
- "depth_$depth" => 1,
- "height_$height" => 1,
- };
+ url => urlto(bestlink($page, $path), $page),
+ page => $title,
+ depth => $depth,
+ height => $height,
+ "depth_$depth" => 1,
+ "height_$height" => 1,
+ };
$path.="/".$dir;
- $title=IkiWiki::pagetitle($dir);
+ $title=pagetitle($dir);
$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)]);
}
-} # }}}
+}
1