X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/dae0f48e91304afcb6ebe0936360e51b22a56548..b72780e70b54bef4fd7fa52a3d2f221b9b4a46d4:/IkiWiki/Plugin/ddate.pm?ds=sidebyside diff --git a/IkiWiki/Plugin/ddate.pm b/IkiWiki/Plugin/ddate.pm index b67702655..f4921fdfd 100644 --- a/IkiWiki/Plugin/ddate.pm +++ b/IkiWiki/Plugin/ddate.pm @@ -1,7 +1,8 @@ #!/usr/bin/perl # Discordian date support fnord ikiwiki. package IkiWiki::Plugin::ddate; -use IkiWiki; + +use IkiWiki 2.00; no warnings; sub import { #{{{ @@ -11,20 +12,22 @@ sub import { #{{{ sub checkconfig () { #{{{ if (! defined $config{timeformat} || $config{timeformat} eq '%c') { - $config{timeformat}='on %{%A, the %e of %B%}, %Y. %N%nCelebrate %H'; + $config{timeformat}='on %A, the %e of %B, %Y. %N%nCelebrate %H'; } } #}}} sub IkiWiki::displaytime ($) { #{{{ my $time=shift; - eval q{use POSIX}; - my $gregorian=POSIX::strftime("%d %m %Y", localtime($time)); - my $date=`ddate +'$config{timeformat}' $gregorian`; - chomp $date; - if ($? || ! length $date) { - return "some time or other (hail Eris!)"; + eval q{ + use DateTime; + use DateTime::Calendar::Discordian; + }; + if ($@) { + return "some time or other ($@ -- hail Eris!)"; } - return $date; + my $dt = DateTime->from_epoch(epoch => $time); + my $dd = DateTime::Calendar::Discordian->from_object(object => $dt); + return $dd->strftime($IkiWiki::config{timeformat}); } #}}} 5