+ else {
+ $value=encode_entities($value);
+ }
+ my $delay=int(exists $params{delay} ? $params{delay} : 0);
+ my $redir="<meta http-equiv=\"refresh\" content=\"$delay; URL=$value\" />";
+ if (! $safe) {
+ $redir=scrub($redir, $page, $destpage);
+ }
+ push @{$metaheaders{$page}}, $redir;
+ }
+ elsif ($key eq 'link') {
+ if (%params) {
+ push @{$metaheaders{$page}}, scrub("<link href=\"".encode_entities($value)."\" ".
+ join(" ", map {
+ encode_entities($_)."=\"".encode_entities(decode_entities($params{$_}))."\""
+ } keys %params).
+ " />\n", $page, $destpage);
+ }
+ }
+ elsif ($key eq 'robots') {
+ push @{$metaheaders{$page}}, '<meta name="robots"'.
+ ' content="'.encode_entities($value).'" />';
+ }
+ elsif ($key eq 'description' || $key eq 'author') {
+ push @{$metaheaders{$page}}, '<meta name="'.$key.
+ '" content="'.encode_entities($value).'" />';
+ }
+ elsif ($key eq 'name') {
+ push @{$metaheaders{$page}}, scrub('<meta name="'.
+ encode_entities($value).
+ join(' ', map { "$_=\"$params{$_}\"" } keys %params).
+ ' />', $page, $destpage);
+ }
+ elsif ($key eq 'keywords') {
+ # Make sure the keyword string is safe: only allow alphanumeric
+ # characters, space and comma and strip the rest.
+ $value =~ s/[^[:alnum:], ]+//g;
+ push @{$metaheaders{$page}}, '<meta name="keywords"'.
+ ' content="'.encode_entities($value).'" />';
+ }
+ else {
+ push @{$metaheaders{$page}}, scrub('<meta name="'.
+ encode_entities($key).'" content="'.
+ encode_entities($value).'" />', $page, $destpage);