From df75c5b93a1067461b649e48cc62d4c7f4d18ec7 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 25 Nov 2009 01:18:43 -0500 Subject: [PATCH] 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. --- IkiWiki/Plugin/date.pm | 33 +++++++++++++++++++++++++++++++++ debian/changelog | 3 +++ doc/ikiwiki/directive/date.mdwn | 14 ++++++++++++++ doc/plugins/date.mdwn | 6 ++++++ 4 files changed, 56 insertions(+) create mode 100644 IkiWiki/Plugin/date.pm create mode 100644 doc/ikiwiki/directive/date.mdwn create mode 100644 doc/plugins/date.mdwn 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 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.