]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki.pm
po plugin: reworked available options
[ikiwiki.git] / IkiWiki.pm
index 633c5138180a9f87f4a974bef3322492c1d08ada..28ee882cf20d99b30059cf195ca8f70881de932d 100644 (file)
@@ -647,8 +647,19 @@ sub newpagefile ($$) { #{{{
 sub targetpage ($$) { #{{{
        my $page=shift;
        my $ext=shift;
-       
-       if (! $config{usedirs} || $page eq 'index') {
+
+       my $targetpage='';
+       run_hooks(targetpage => sub {
+               $targetpage=shift->(
+                       page => $page,
+                       ext => $ext,
+               );
+       });
+
+       if (defined $targetpage && (length($targetpage) > 0)) {
+               return $targetpage;
+       }
+       elsif (! $config{usedirs} || $page eq 'index') {
                return $page.".".$ext;
        }
        else {
@@ -681,11 +692,12 @@ sub srcfile ($;$) { #{{{
 sub add_underlay ($) { #{{{
        my $dir=shift;
 
-       if ($dir=~/^\//) {
-               unshift @{$config{underlaydirs}}, $dir;
+       if ($dir !~ /^\//) {
+               $dir="$config{underlaydir}/../$dir";
        }
-       else {
-               unshift @{$config{underlaydirs}}, "$config{underlaydir}/../$dir";
+
+       if (! grep { $_ eq $dir } @{$config{underlaydirs}}) {
+               unshift @{$config{underlaydirs}}, $dir;
        }
 
        return 1;