date: New plugin that allows inserting date directives that expand to pretty-printed...
authorJoey Hess <joey@gnu.kitenet.net>
Wed, 25 Nov 2009 06:18:43 +0000 (01:18 -0500)
committerJoey Hess <joey@gnu.kitenet.net>
Wed, 25 Nov 2009 06:18:43 +0000 (01:18 -0500)
IkiWiki/Plugin/date.pm [new file with mode: 0644]
debian/changelog
doc/ikiwiki/directive/date.mdwn [new file with mode: 0644]
doc/plugins/date.mdwn [new file with mode: 0644]

diff --git a/IkiWiki/Plugin/date.pm b/IkiWiki/Plugin/date.pm
new file mode 100644 (file)
index 0000000..8f2aa73
--- /dev/null
@@ -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
index 15d56a693df038e5392a18bf221a55abe18c202e..10fcebbec0bb88f530d2c852392c321d7d8fcc7e 100644 (file)
@@ -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 (file)
index 0000000..df45fa8
--- /dev/null
@@ -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 (file)
index 0000000..b8dbdfe
--- /dev/null
@@ -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.