summaryrefslogtreecommitdiff
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
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.
-rw-r--r--IkiWiki/Plugin/date.pm33
-rw-r--r--debian/changelog3
-rw-r--r--doc/ikiwiki/directive/date.mdwn14
-rw-r--r--doc/plugins/date.mdwn6
4 files changed, 56 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
diff --git a/debian/changelog b/debian/changelog
index 15d56a693..10fcebbec 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -9,6 +9,9 @@ ikiwiki (3.20091114) UNRELEASED; urgency=low
larger for inlines of many, or complex pages.
* Added (incomplete) Turkish po file. Closes: #556744
Thanks, Recai Oktaş
+ * 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.
-- Joey Hess <joeyh@debian.org> Mon, 16 Nov 2009 15:46:45 -0500
diff --git a/doc/ikiwiki/directive/date.mdwn b/doc/ikiwiki/directive/date.mdwn
new file mode 100644
index 000000000..df45fa840
--- /dev/null
+++ b/doc/ikiwiki/directive/date.mdwn
@@ -0,0 +1,14 @@
+The `date` directive is supplied by the [[!iki plugins/date desc=date]] plugin.
+
+This directive can be used to display a date on a page, using the same
+display method that is used to display the modification date in the page
+footer, and other dates in the wiki. This can be useful for consistency
+of display, or if you want to embed parseable dates into the page source.
+
+Like the dates used by the [[meta]] directive, the date can be entered in
+nearly any format, since it's parsed by [[!cpan TimeDate]].
+
+For example, an update to a page with an embedded date stamp could look
+like:
+
+ Updated \[[!date "Wed, 25 Nov 2009 01:11:55 -0500"]]: mumble mumble
diff --git a/doc/plugins/date.mdwn b/doc/plugins/date.mdwn
new file mode 100644
index 000000000..b8dbdfee5
--- /dev/null
+++ b/doc/plugins/date.mdwn
@@ -0,0 +1,6 @@
+[[!template id=plugin name=date author="[[Joey]]"]]
+[[!tag type/meta]]
+
+This plugin provides the [[ikiwiki/directive/date]]
+[[ikiwiki/directive]], which provides a way to display an arbitrary date
+in a page.