X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/ee1ad53c4c2710aa7ded61bdc56f3a8cce514f22..a78126c55ecbe014ab2a214f324b32762e6a268d:/IkiWiki/Plugin/prettydate.pm diff --git a/IkiWiki/Plugin/prettydate.pm b/IkiWiki/Plugin/prettydate.pm index 44ffb719e..b0931cb55 100644 --- a/IkiWiki/Plugin/prettydate.pm +++ b/IkiWiki/Plugin/prettydate.pm @@ -1,6 +1,6 @@ #!/usr/bin/perl package IkiWiki::Plugin::prettydate; -use IkiWiki 2.00; +use IkiWiki 3.00; use warnings; no warnings 'redefine'; use strict; @@ -22,7 +22,7 @@ sub default_timetable { gettext("early %A morning"), # 7 "", # 8 "", # 9 - gettext("in mid-morning %A"), # 10 + gettext("mid-morning %A"), # 10 gettext("late %A morning"), # 11 gettext("at lunch time on %A"), # 12 "", # 1 @@ -33,17 +33,40 @@ sub default_timetable { gettext("%A evening"), # 6 "", # 7 gettext("late %A evening"), # 8 - "", # 9 # 9 + "", # 9 gettext("%A night"), # 10 "", # 11 ]; } -sub import { #{{{ - hook(type => "checkconfig", id => "skeleton", call => \&checkconfig); -} # }}} +sub import { + hook(type => "getsetup", id => "prettydate", call => \&getsetup); + hook(type => "checkconfig", id => "prettydate", call => \&checkconfig); +} + +sub getsetup () { + return + plugin => { + safe => 1, + rebuild => 1, + }, + prettydateformat => { + type => "string", + example => '%X, %B %o, %Y', + description => "format to use to display date", + advanced => 1, + safe => 1, + rebuild => 1, + }, + timetable => { + type => "internal", + description => "array of time descriptions", + safe => 1, + rebuild => 1, + }, +} -sub checkconfig () { #{{{ +sub checkconfig () { if (! defined $config{prettydateformat} || $config{prettydateformat} eq '%c') { $config{prettydateformat}='%X, %B %o, %Y'; @@ -59,10 +82,14 @@ sub checkconfig () { #{{{ $config{timetable}[$h] = $config{timetable}[$h - 1]; } } -} #}}} +} -sub IkiWiki::displaytime ($) { #{{{ +sub IkiWiki::formattime ($;$) { my $time=shift; + my $format=shift; + if (! defined $format) { + $format=$config{prettydateformat}; + } eval q{use Date::Format}; error($@) if $@; @@ -91,11 +118,10 @@ sub IkiWiki::displaytime ($) { #{{{ } } - $t=~s{\%A-}{my @yest=@t; $yest[6]--; strftime("%A", \@yest)}eg; + $t=~s{\%A-}{my @yest=@t; $yest[6]--; strftime_utf8("%A", \@yest)}eg; - my $format=$config{prettydateformat}; $format=~s/\%X/$t/g; - return strftime($format, \@t); -} #}}} + return strftime_utf8($format, \@t); +} 1