Add parameter to displaytime to specify that it is a pubdate, and in html5 mode, use time tag.
parent
f9e41d19b7
commit
970373548f
22
IkiWiki.pm
22
IkiWiki.pm
|
@ -998,10 +998,18 @@ sub abs2rel ($$) {
|
|||
return $ret;
|
||||
}
|
||||
|
||||
sub displaytime ($;$) {
|
||||
sub displaytime ($;$$) {
|
||||
# Plugins can override this function to mark up the time to
|
||||
# display.
|
||||
return '<span class="date">'.formattime(@_).'</span>';
|
||||
my $time=formattime($_[0], $_[1]);
|
||||
if ($config{html5}) {
|
||||
return '<time datetime="'.date_3339($_[0]).'"'.
|
||||
($_[2] ? ' pubdate' : '').
|
||||
'>'.$time.'</time>';
|
||||
}
|
||||
else {
|
||||
return '<span class="date">'.$time.'</span>';
|
||||
}
|
||||
}
|
||||
|
||||
sub formattime ($;$) {
|
||||
|
@ -1017,6 +1025,16 @@ sub formattime ($;$) {
|
|||
return decode_utf8(POSIX::strftime($format, localtime($time)));
|
||||
}
|
||||
|
||||
sub date_3339 ($) {
|
||||
my $time=shift;
|
||||
|
||||
my $lc_time=POSIX::setlocale(&POSIX::LC_TIME);
|
||||
POSIX::setlocale(&POSIX::LC_TIME, "C");
|
||||
my $ret=POSIX::strftime("%Y-%m-%dT%H:%M:%SZ", gmtime($time));
|
||||
POSIX::setlocale(&POSIX::LC_TIME, $lc_time);
|
||||
return $ret;
|
||||
}
|
||||
|
||||
sub beautify_urlpath ($) {
|
||||
my $url=shift;
|
||||
|
||||
|
|
|
@ -672,7 +672,7 @@ sub previewcomment ($$$) {
|
|||
|
||||
my $template = template("comment.tmpl");
|
||||
$template->param(content => $preview);
|
||||
$template->param(ctime => displaytime($time));
|
||||
$template->param(ctime => displaytime($time, undef, 1));
|
||||
|
||||
IkiWiki::run_hooks(pagetemplate => sub {
|
||||
shift->(page => $location,
|
||||
|
|
|
@ -358,7 +358,7 @@ sub preprocess_inline (@) {
|
|||
$template->param(pageurl => urlto($page, $params{destpage}));
|
||||
$template->param(inlinepage => $page);
|
||||
$template->param(title => pagetitle(basename($page)));
|
||||
$template->param(ctime => displaytime($pagectime{$page}, $params{timeformat}));
|
||||
$template->param(ctime => displaytime($pagectime{$page}, $params{timeformat}, 1));
|
||||
$template->param(mtime => displaytime($pagemtime{$page}, $params{timeformat}));
|
||||
$template->param(first => 1) if $page eq $list[0];
|
||||
$template->param(last => 1) if $page eq $list[$#list];
|
||||
|
@ -500,16 +500,6 @@ sub date_822 ($) {
|
|||
return $ret;
|
||||
}
|
||||
|
||||
sub date_3339 ($) {
|
||||
my $time=shift;
|
||||
|
||||
my $lc_time=POSIX::setlocale(&POSIX::LC_TIME);
|
||||
POSIX::setlocale(&POSIX::LC_TIME, "C");
|
||||
my $ret=POSIX::strftime("%Y-%m-%dT%H:%M:%SZ", gmtime($time));
|
||||
POSIX::setlocale(&POSIX::LC_TIME, $lc_time);
|
||||
return $ret;
|
||||
}
|
||||
|
||||
sub absolute_urls ($$) {
|
||||
# sucky sub because rss sucks
|
||||
my $content=shift;
|
||||
|
|
|
@ -43,9 +43,10 @@ sub include_javascript ($;$) {
|
|||
'" type="text/javascript" charset="utf-8"></script>';
|
||||
}
|
||||
|
||||
sub mydisplaytime ($;$) {
|
||||
sub mydisplaytime ($;$$) {
|
||||
my $time=shift;
|
||||
my $format=shift;
|
||||
my $pubdate=shift;
|
||||
|
||||
# This needs to be in a form that can be parsed by javascript.
|
||||
# Being fairly human readable is also nice, as it will be exposed
|
||||
|
@ -53,8 +54,16 @@ sub mydisplaytime ($;$) {
|
|||
my $gmtime=decode_utf8(POSIX::strftime("%a, %d %b %Y %H:%M:%S %z",
|
||||
localtime($time)));
|
||||
|
||||
return '<span class="relativedate" title="'.$gmtime.'">'.
|
||||
IkiWiki::formattime($time, $format).'</span>';
|
||||
my $mid=' class="relativedate" title="'.$gmtime.'">'.
|
||||
IkiWiki::formattime($time, $format);
|
||||
|
||||
if ($config{html5}) {
|
||||
return '<time datetime="'.IkiWiki::date_3339($time).'"'.
|
||||
($pubdate ? ' pubdate' : '').$mid.'</time>';
|
||||
}
|
||||
else {
|
||||
return '<span'.$mid.'</span>';
|
||||
}
|
||||
}
|
||||
|
||||
1
|
||||
|
|
|
@ -136,7 +136,7 @@ sub genpage ($$) {
|
|||
backlinks => $backlinks,
|
||||
more_backlinks => $more_backlinks,
|
||||
mtime => displaytime($pagemtime{$page}),
|
||||
ctime => displaytime($pagectime{$page}),
|
||||
ctime => displaytime($pagectime{$page}, undef, 1),
|
||||
baseurl => baseurl($page),
|
||||
html5 => $config{html5},
|
||||
);
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
ikiwiki (3.20100502) UNRELEASED; urgency=low
|
||||
|
||||
* Add parameter to displaytime to specify that it is a pubdate,
|
||||
and in html5 mode, use time tag.
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Sun, 02 May 2010 13:22:50 -0400
|
||||
|
||||
ikiwiki (3.20100501) unstable; urgency=low
|
||||
|
||||
* TMPL_INCLUDE re-enabled for templates read from the templatedir.
|
||||
|
|
|
@ -133,6 +133,9 @@ As a workaround:
|
|||
> Also, the [[plugins/relativedate]] plugin needs to be updated to
|
||||
> support relatatizing the contents of time elements. --[[Joey]]
|
||||
|
||||
> Done and done; in html5 mode it uses the time tag, and even
|
||||
> adds pubdate when displaying ctimes. --[[Joey]]
|
||||
|
||||
## tidy plugin
|
||||
|
||||
Will reformat html5 to html4.
|
||||
|
|
|
@ -938,13 +938,16 @@ search for files.
|
|||
If the directory name is not absolute, ikiwiki will assume it is in
|
||||
the parent directory of the configured underlaydir.
|
||||
|
||||
### `displaytime($;$)`
|
||||
### `displaytime($;$$)`
|
||||
|
||||
Given a time, formats it for display.
|
||||
|
||||
The optional second parameter is a strftime format to use to format the
|
||||
time.
|
||||
|
||||
If the third parameter is true, this is the publication time of a page.
|
||||
(Ie, set the html5 pubdate attribute.)
|
||||
|
||||
### `gettext`
|
||||
|
||||
This is the standard gettext function, although slightly optimised.
|
||||
|
|
Loading…
Reference in New Issue