# Author(s): Gavin Carr <gavin@openfusion.com.au>
# (based on work by Frank Hecker <hecker@hecker.org>
# and Bob Schumaker <cobblers@pobox.com>)
-# Version: 0.001000
+# Version: 0.002000
# Documentation: See the bottom of this file or type: perldoc storydate
package storydate;
my @strftime_modules = qw(Time::Piece Date::Format POSIX);
# ---------------------------------
+# __END_CONFIG__
# Package variables
use vars qw(
$story_mtime_iso8601
$now_rfc822
$now_iso8601
+ $latest_rfc822
+ $latest_iso8601
%strftime_formats
);
%strftime_formats = (
- rfc822 => "%a, %d %b %Y %T %z",
+ rfc822 => "%a, %d %b %Y %T %z",
# ISO 8601 format (localtime, including time zone offset)
# Format is YYYY-MM-DDThh:mm:ssTZD per http://www.w3.org/TR/NOTE-datetime
iso8601 => "%Y-%m-%dT%T%z",
1;
}
+sub filter {
+ my ($pkg, $files, $others) = @_;
+
+ # Find the latest publish date in our stories
+ my $latest_ts = 0;
+ for (values %$files) {
+ $latest_ts = $_ if $_ > $latest_ts;
+ }
+
+ # Format the 'latest' variables
+ $latest_rfc822 = format_date('rfc822', $latest_ts);
+ $latest_iso8601 = format_date('iso8601', $latest_ts);
+
+ return 1;
+}
+
sub story {
my ($pkg, $path, $filename, $story_ref, $title_ref, $body_ref) = @_;
The current time in ISO8601 format.
+=item $latest_rfc822
+
+The latest story publication date, in RFC822 format.
+
+=item $latest_iso8601
+
+The latest story publication date, in ISO8601 format.
+
=back
In addition, storydate defines a few subroutines that might be useful