X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/37ec6a82433aa1d7030bca7cae9d3813a6bdbd1f..09d4e9d6bb7a049b0721ffbf7dc6e64bee4404cc:/IkiWiki/Plugin/meta.pm?ds=inline
diff --git a/IkiWiki/Plugin/meta.pm b/IkiWiki/Plugin/meta.pm
index c675880b3..5f046cb2a 100644
--- a/IkiWiki/Plugin/meta.pm
+++ b/IkiWiki/Plugin/meta.pm
@@ -20,6 +20,7 @@ sub getsetup () {
plugin => {
safe => 1,
rebuild => undef,
+ section => "core",
},
}
@@ -88,7 +89,7 @@ sub preprocess (@) {
# Metadata collection that needs to happen during the scan pass.
if ($key eq 'title') {
$pagestate{$page}{meta}{title}=HTML::Entities::encode_numeric($value);
- # fallthrough
+ return "";
}
elsif ($key eq 'description') {
$pagestate{$page}{meta}{description}=HTML::Entities::encode_numeric($value);
@@ -121,6 +122,10 @@ sub preprocess (@) {
$pagestate{$page}{meta}{authorurl}=$value if safeurl($value);
# fallthrough
}
+ elsif ($key eq 'permalink') {
+ $pagestate{$page}{meta}{permalink}=$value if safeurl($value);
+ # fallthrough
+ }
elsif ($key eq 'date') {
eval q{use Date::Parse};
if (! $@) {
@@ -141,10 +146,9 @@ sub preprocess (@) {
return;
}
- # Metadata collection that happens only during preprocessing pass.
+ # Metadata handling that happens only during preprocessing pass.
if ($key eq 'permalink') {
if (safeurl($value)) {
- $pagestate{$page}{meta}{permalink}=$value;
push @{$metaheaders{$page}}, scrub('', $destpage);
}
}
@@ -236,6 +240,10 @@ sub preprocess (@) {
push @{$metaheaders{$page}}, '';
}
+ elsif ($key eq 'description') {
+ push @{$metaheaders{$page}}, '';
+ }
else {
push @{$metaheaders{$page}}, scrub('', $destpage);
@@ -260,7 +268,7 @@ sub pagetemplate (@) {
$template->param(title_overridden => 1);
}
- foreach my $field (qw{author authorurl permalink}) {
+ foreach my $field (qw{author authorurl description permalink}) {
$template->param($field => $pagestate{$page}{meta}{$field})
if exists $pagestate{$page}{meta}{$field} && $template->query(name => $field);
}
@@ -291,14 +299,14 @@ sub match {
if (defined $val) {
if ($val=~/^$re$/i) {
- return IkiWiki::SuccessReason->new("$re matches $field of $page", $page => $IkiWiki::DEPEND_CONTENT);
+ return IkiWiki::SuccessReason->new("$re matches $field of $page", $page => $IkiWiki::DEPEND_CONTENT, "" => 1);
}
else {
- return IkiWiki::FailReason->new("$re does not match $field of $page");
+ return IkiWiki::FailReason->new("$re does not match $field of $page", "" => 1);
}
}
else {
- return IkiWiki::FailReason->new("$page does not have a $field");
+ return IkiWiki::FailReason->new("$page does not have a $field", "" => 1);
}
}