summaryrefslogtreecommitdiff
path: root/IkiWiki
diff options
context:
space:
mode:
authorJoey Hess <joey@gnu.kitenet.net>2009-11-25 01:18:43 -0500
committerJoey Hess <joey@gnu.kitenet.net>2009-11-25 01:18:43 -0500
commitdf75c5b93a1067461b649e48cc62d4c7f4d18ec7 (patch)
treeb576f82f0fd2f0b0c9ac8353c0ec0e4c368816f3 /IkiWiki
parentc6daf3b022390f0b45c60885c50e2f19fde966d3 (diff)
date: New plugin that allows inserting date directives that expand to pretty-printed dates, using the same formatting as used for page modification date display, etc.
Diffstat (limited to 'IkiWiki')
-rw-r--r--IkiWiki/Plugin/date.pm33
1 files changed, 33 insertions, 0 deletions
diff --git a/IkiWiki/Plugin/date.pm b/IkiWiki/Plugin/date.pm
new file mode 100644
index 000000000..8f2aa73d6
--- /dev/null
+++ b/IkiWiki/Plugin/date.pm
@@ -0,0 +1,33 @@
+#!/usr/bin/perl
+package IkiWiki::Plugin::date;
+
+use warnings;
+use strict;
+use IkiWiki 3.00;
+
+sub import {
+ hook(type => "getsetup", id => "meta", call => \&getsetup);
+ hook(type => "preprocess", id => "meta", call => \&preprocess);
+}
+
+sub getsetup () {
+ return
+ plugin => {
+ safe => 1,
+ rebuild => undef,
+ },
+}
+
+sub preprocess (@) {
+ my $str=shift;
+
+ eval q{use Date::Parse};
+ error $@ if $@;
+ my $time = str2time($str);
+ if (! defined $time) {
+ error("unable to parse $str");
+ }
+ return displaytime($time);
+}
+
+1