aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@gnu.kitenet.net>2008-12-21 01:52:08 -0500
committerJoey Hess <joey@gnu.kitenet.net>2008-12-21 01:52:08 -0500
commitc84fcdd32aad7a613bf7bbb501362dffcf5ccdeb (patch)
treedafb1c6450151c13f3691d2fa1856be96cf22308
parentda947bea4be8b388531ff70650d274f8ee8f1500 (diff)
downloadikiwiki-c84fcdd32aad7a613bf7bbb501362dffcf5ccdeb.tar
ikiwiki-c84fcdd32aad7a613bf7bbb501362dffcf5ccdeb.tar.gz
meta: Process meta date during scan pass so that the date will always affect sorting in inlines.
-rw-r--r--IkiWiki/Plugin/meta.pm16
-rw-r--r--debian/changelog2
-rw-r--r--doc/bugs/inline_sort_order_and_meta_date_value.mdwn2
3 files changed, 12 insertions, 8 deletions
diff --git a/IkiWiki/Plugin/meta.pm b/IkiWiki/Plugin/meta.pm
index ea60be507..8c214139f 100644
--- a/IkiWiki/Plugin/meta.pm
+++ b/IkiWiki/Plugin/meta.pm
@@ -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);
diff --git a/debian/changelog b/debian/changelog
index d8685db09..056fabc7d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -23,6 +23,8 @@ ikiwiki (2.71) UNRELEASED; urgency=low
* aggregate: If a feed fails to be downloaded, try again immediatly
next time aggregation is run, even if the usual time has not passed.
Closes: #508622 (Michael Gold)
+ * meta: Process meta date during scan pass so that the date will always
+ affect sorting in inlines.
-- Joey Hess <joeyh@debian.org> Mon, 17 Nov 2008 14:02:10 -0500
diff --git a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
index 219657753..d4ec8f345 100644
--- a/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
+++ b/doc/bugs/inline_sort_order_and_meta_date_value.mdwn
@@ -309,4 +309,6 @@ available at the time that they are inlined, and the newer unix ctime is
used. On the second build, the meta data has already been recorded.
This can probably be avoided by processing meta date at scan time.
+
+Verified, fix works. [[done]]
--[[Joey]]