X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/9747c47670064f206189eb3c36a8e7fcfe08e172..862fc7c1ab1f7d709561bcb02fc8ede57b90a51b:/IkiWiki/Plugin/goto.pm diff --git a/IkiWiki/Plugin/goto.pm b/IkiWiki/Plugin/goto.pm index 439552f62..42d2425ca 100644 --- a/IkiWiki/Plugin/goto.pm +++ b/IkiWiki/Plugin/goto.pm @@ -7,6 +7,7 @@ use IkiWiki 3.00; sub import { hook(type => "cgi", id => 'goto', call => \&cgi); + hook(type => "getsetup", id => 'goto', call => \&getsetup); } sub getsetup () { @@ -14,6 +15,7 @@ sub getsetup () { plugin => { safe => 1, rebuild => 0, + section => "web", } } @@ -40,14 +42,15 @@ sub cgi_goto ($;$) { IkiWiki::loadindex(); - # If the page is internal (like a comment), see if it has a - # permalink. Comments do. - if (IkiWiki::isinternal($page) && - defined $pagestate{$page}{meta}{permalink}) { - IkiWiki::redirect($q, $pagestate{$page}{meta}{permalink}); + my $link; + if (! IkiWiki::isinternal($page)) { + $link = bestlink("", $page); + } + elsif (defined $pagestate{$page}{meta}{permalink}) { + # Can only redirect to an internal page if it has a + # permalink. + IkiWiki::redirect($q, $pagestate{$page}{meta}{permalink}); } - - my $link = bestlink("", $page); if (! length $link) { IkiWiki::cgi_custom_failure(