Here is a patch to add a forwarding functionality to the meta plugin
authorThomas Schwinge <tschwinge@gnu.org>
Sat, 8 Dec 2007 19:37:41 +0000 (14:37 -0500)
committerJoey Hess <joey@kitenet.net>
Sat, 8 Dec 2007 19:37:41 +0000 (14:37 -0500)
IkiWiki/Plugin/meta.pm

index 938a28e59f83851f53e8d68c2776c2ee37e115f9..cfa4b84b1d9d92382a28e60ae54501683c5dff31 100644 (file)
@@ -47,6 +47,7 @@ sub preprocess (@) { #{{{
        delete $params{$key};
        my $page=$params{page};
        delete $params{page};
+       my $destpage=$params{destpage};
        delete $params{destpage};
        delete $params{preview};
 
@@ -110,6 +111,25 @@ sub preprocess (@) { #{{{
                $meta{$page}.="<link rel=\"copyright\" href=\"#page_copyright\" />\n";
                $copyright{$page}=$value;
        }
+       elsif ($key eq 'forward') {
+               my $delay=0;
+               my $dest_url;
+               my $text;
+               if (exists $params{delay}) {
+                       $delay=$params{delay};
+               }
+               # Is this a wikilink?
+               if ($value =~ /^\[\[(.*)\]\]$/) {
+                       $text=htmllink($page, $destpage, $1);
+                       $dest_url=urlto(bestlink($page, $1), $destpage);
+               } else {
+                       $text="<a href=\"$dest_url\">$dest_url</a>";
+                       $dest_url=$value;
+               }
+# TODO.                $meta{$page}.=scrub("<meta http-equiv=\"refresh\" content=\"$delay; URL=$dest_url\">");
+               $meta{$page}.="<meta http-equiv=\"refresh\" content=\"$delay; URL=$dest_url\">";
+               return "You are being forwarded to $text.";
+       }
        else {
                $meta{$page}.=scrub("<meta name=\"".encode_entities($key).
                        "\" content=\"".encode_entities($value)."\" />\n");