X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/d0bbfeefbe9852065b16d7b085656ff38468f0f3..376944cb026945ab597db01eb1e3aea4fa320007:/IkiWiki/Plugin/ddate.pm

diff --git a/IkiWiki/Plugin/ddate.pm b/IkiWiki/Plugin/ddate.pm
index 3bd6c6f73..d081cb509 100644
--- a/IkiWiki/Plugin/ddate.pm
+++ b/IkiWiki/Plugin/ddate.pm
@@ -1,29 +1,37 @@
 #!/usr/bin/perl
 # Discordian date support fnord ikiwiki.
 package IkiWiki::Plugin::ddate;
-use IkiWiki;
-use IkiWiki::Render; # so we can redefine it here
+
+use IkiWiki 2.00;
 no warnings;
 
 sub import { #{{{
-	IkiWiki::hook(type => "checkconfig", id => "skeleton", 
-		call => \&checkconfig);
+	hook(type => "checkconfig", id => "ddate", call => \&checkconfig);
 } # }}}
 
 sub checkconfig () { #{{{
-	if (! defined $IkiWiki::config{timeformat} ||
-	    $IkiWiki::config{timeformat} eq '%c') {
-		$IkiWiki::config{timeformat}='on %{%A, the %e of %B%}, %Y. %N%nCelebrate %H';
+	if (! defined $config{timeformat} ||
+	    $config{timeformat} eq '%c') {
+		$config{timeformat}='on %A, the %e of %B, %Y. %N%nCelebrate %H';
 	}
 } #}}}
 
-sub IkiWiki::displaytime ($) { #{{{
+sub IkiWiki::displaytime ($;$) { #{{{
 	my $time=shift;
-        eval q{use POSIX};
-        my $gregorian=POSIX::strftime("%d %m %Y", localtime($time));
-	my $date=`ddate +'$IkiWiki::config{timeformat}' $gregorian`;
-	chomp $date;
-	return $date;
+	my $format=shift;
+	if (! defined $format) {
+		$format=$config{timeformat};
+	}
+	eval q{
+		use DateTime;
+		use DateTime::Calendar::Discordian;
+	};
+	if ($@) {
+		 return "some time or other ($@ -- hail Eris!)";
+	}
+	my $dt = DateTime->from_epoch(epoch => $time);
+	my $dd = DateTime::Calendar::Discordian->from_object(object => $dt);
+	return $dd->strftime($format);
 } #}}}
 
 5