X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/41efa5ac923c47ebd5538ee5894b11e9ccf7637c..3316f9cc737c091ff79270f75fc30dd349616b12:/IkiWiki/Plugin/meta.pm?ds=inline

diff --git a/IkiWiki/Plugin/meta.pm b/IkiWiki/Plugin/meta.pm
index 3991797c0..15bb29b3f 100644
--- a/IkiWiki/Plugin/meta.pm
+++ b/IkiWiki/Plugin/meta.pm
@@ -4,26 +4,26 @@ package IkiWiki::Plugin::meta;
 
 use warnings;
 use strict;
-use IkiWiki 2.00;
+use IkiWiki 3.00;
 
 my %metaheaders;
 
-sub import { #{{{
+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 () { #{{{
+sub getsetup () {
 	return
 		plugin => {
 			safe => 1,
 			rebuild => undef,
 		},
-} #}}}
+}
 
-sub needsbuild (@) { #{{{
+sub needsbuild (@) {
 	my $needsbuild=shift;
 	foreach my $page (keys %pagestate) {
 		if (exists $pagestate{$page}{meta}) {
@@ -38,7 +38,7 @@ sub needsbuild (@) { #{{{
 	}
 }
 
-sub scrub ($$) { #{{{
+sub scrub ($$) {
 	if (IkiWiki::Plugin::htmlscrubber->can("sanitize")) {
 		return IkiWiki::Plugin::htmlscrubber::sanitize(
 			content => shift, destpage => shift);
@@ -46,9 +46,9 @@ sub scrub ($$) { #{{{
 	else {
 		return shift;
 	}
-} #}}}
+}
 
-sub safeurl ($) { #{{{
+sub safeurl ($) {
 	my $url=shift;
 	if (exists $IkiWiki::Plugin::htmlscrubber::{safe_url_regexp} &&
 	    defined $IkiWiki::Plugin::htmlscrubber::safe_url_regexp) {
@@ -57,9 +57,9 @@ sub safeurl ($) { #{{{
 	else {
 		return 1;
 	}
-} #}}}
+}
 
-sub htmlize ($$$) { #{{{
+sub htmlize ($$$) {
 	my $page = shift;
 	my $destpage = shift;
 
@@ -68,7 +68,7 @@ sub htmlize ($$$) { #{{{
 		IkiWiki::preprocess($page, $destpage, shift)));
 }
 
-sub preprocess (@) { #{{{
+sub preprocess (@) {
 	return "" unless @_;
 	my %params=@_;
 	my $key=shift;
@@ -121,6 +121,13 @@ sub preprocess (@) { #{{{
 		$pagestate{$page}{meta}{authorurl}=$value if safeurl($value);
 		# fallthrough
 	}
+	elsif ($key eq 'date') {
+		eval q{use Date::Parse};
+		if (! $@) {
+			my $time = str2time($value);
+			$IkiWiki::pagectime{$page}=$time if defined $time;
+		}
+	}
 
 	if (! defined wantarray) {
 		# avoid collecting duplicate data during scan pass
@@ -128,14 +135,7 @@ sub preprocess (@) { #{{{
 	}
 
 	# Metadata collection that happens only during preprocessing pass.
-	if ($key eq 'date') {
-		eval q{use Date::Parse};
-		if (! $@) {
-			my $time = str2time($value);
-			$IkiWiki::pagectime{$page}=$time if defined $time;
-		}
-	}
-	elsif ($key eq 'permalink') {
+	if ($key eq 'permalink') {
 		if (safeurl($value)) {
 			$pagestate{$page}{meta}{permalink}=$value;
 			push @{$metaheaders{$page}}, scrub('<link rel="bookmark" href="'.encode_entities($value).'" />', $destpage);
@@ -230,9 +230,9 @@ sub preprocess (@) { #{{{
 	}
 
 	return "";
-} # }}}
+}
 
-sub pagetemplate (@) { #{{{
+sub pagetemplate (@) {
 	my %params=@_;
         my $page=$params{page};
         my $destpage=$params{destpage};
@@ -260,9 +260,9 @@ sub pagetemplate (@) { #{{{
 			$template->param($field => htmlize($page, $destpage, $pagestate{$page}{meta}{$field}));
 		}
 	}
-} # }}}
+}
 
-sub match { #{{{
+sub match {
 	my $field=shift;
 	my $page=shift;
 	
@@ -288,28 +288,28 @@ sub match { #{{{
 	else {
 		return IkiWiki::FailReason->new("$page does not have a $field");
 	}
-} #}}}
+}
 
 package IkiWiki::PageSpec;
 
-sub match_title ($$;@) { #{{{
+sub match_title ($$;@) {
 	IkiWiki::Plugin::meta::match("title", @_);	
-} #}}}
+}
 
-sub match_author ($$;@) { #{{{
+sub match_author ($$;@) {
 	IkiWiki::Plugin::meta::match("author", @_);
-} #}}}
+}
 
-sub match_authorurl ($$;@) { #{{{
+sub match_authorurl ($$;@) {
 	IkiWiki::Plugin::meta::match("authorurl", @_);
-} #}}}
+}
 
-sub match_license ($$;@) { #{{{
+sub match_license ($$;@) {
 	IkiWiki::Plugin::meta::match("license", @_);
-} #}}}
+}
 
-sub match_copyright ($$;@) { #{{{
+sub match_copyright ($$;@) {
 	IkiWiki::Plugin::meta::match("copyright", @_);
-} #}}}
+}
 
 1