X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/a65d312467c5ab179ecf4aa715790f371a46634a..f9b87a9f8b498f3a41614b159dcb278024be70dd:/IkiWiki/Plugin/meta.pm
diff --git a/IkiWiki/Plugin/meta.pm b/IkiWiki/Plugin/meta.pm
index 4e0e9e8c7..3991797c0 100644
--- a/IkiWiki/Plugin/meta.pm
+++ b/IkiWiki/Plugin/meta.pm
@@ -9,11 +9,20 @@ use IkiWiki 2.00;
my %metaheaders;
sub import { #{{{
+ hook(type => "getsetup", id => "meta", call => \&getsetup);
hook(type => "needsbuild", id => "meta", call => \&needsbuild);
hook(type => "preprocess", id => "meta", call => \&preprocess, scan => 1);
hook(type => "pagetemplate", id => "meta", call => \&pagetemplate);
} # }}}
+sub getsetup () { #{{{
+ return
+ plugin => {
+ safe => 1,
+ rebuild => undef,
+ },
+} #}}}
+
sub needsbuild (@) { #{{{
my $needsbuild=shift;
foreach my $page (keys %pagestate) {
@@ -29,9 +38,10 @@ sub needsbuild (@) { #{{{
}
}
-sub scrub ($) { #{{{
+sub scrub ($$) { #{{{
if (IkiWiki::Plugin::htmlscrubber->can("sanitize")) {
- return IkiWiki::Plugin::htmlscrubber::sanitize(content => shift);
+ return IkiWiki::Plugin::htmlscrubber::sanitize(
+ content => shift, destpage => shift);
}
else {
return shift;
@@ -128,7 +138,7 @@ sub preprocess (@) { #{{{
elsif ($key eq 'permalink') {
if (safeurl($value)) {
$pagestate{$page}{meta}{permalink}=$value;
- push @{$metaheaders{$page}}, scrub('');
+ push @{$metaheaders{$page}}, scrub('', $destpage);
}
}
elsif ($key eq 'stylesheet') {
@@ -197,7 +207,7 @@ sub preprocess (@) { #{{{
my $delay=int(exists $params{delay} ? $params{delay} : 0);
my $redir="";
if (! $safe) {
- $redir=scrub($redir);
+ $redir=scrub($redir, $destpage);
}
push @{$metaheaders{$page}}, $redir;
}
@@ -207,7 +217,7 @@ sub preprocess (@) { #{{{
join(" ", map {
encode_entities($_)."=\"".encode_entities(decode_entities($params{$_}))."\""
} keys %params).
- " />\n");
+ " />\n", $destpage);
}
}
elsif ($key eq 'robots') {
@@ -216,7 +226,7 @@ sub preprocess (@) { #{{{
}
else {
push @{$metaheaders{$page}}, scrub('');
+ '" content="'.encode_entities($value).'" />', $destpage);
}
return "";
@@ -264,7 +274,7 @@ sub match { #{{{
$val=$pagestate{$page}{meta}{$field};
}
elsif ($field eq 'title') {
- $val = IkiWiki::pagetitle($page);
+ $val = pagetitle($page);
}
if (defined $val) {