In Atom, we can provide published
and updated
information.
In RSS, there is only pubDate
, for the
publication date, but an update can be mentioned with the dc:modified
element (whose datetime format is iso 8601).
This patch updates inline.pm
and the two relevant templates.
I tested a slightly modified patch, which I've put below for now. feedvalidator.org complains that dc:modified is not a known element. I'll bet some header needs to be added to make the dublin core stuff available. The atom feeds seem ok. --Joey
Index: debian/changelog =================================================================== --- debian/changelog (revision 4066) +++ debian/changelog (working copy) @@ -15,8 +15,11 @@ * Updated French translation from Cyril Brulebois. Closes: #437181 * The toc directive doesn't work well or make sense inside an inlined page. Disable it when the page with the toc is nested inside another page. + * Apply a patch from NicolasLimare adding modification date tags to rss and + atom feeds, and also changing the publication time for a feed to the + newest modiciation time (was newest creation time). - -- Joey Hess Sat, 11 Aug 2007 17:40:45 -0400 + -- Joey Hess Sat, 11 Aug 2007 18:25:28 -0400 ikiwiki (2.5) unstable; urgency=low Index: templates/atomitem.tmpl =================================================================== --- templates/atomitem.tmpl (revision 4066) +++ templates/atomitem.tmpl (working copy) @@ -11,7 +11,8 @@ - + + Index: templates/rssitem.tmpl =================================================================== --- templates/rssitem.tmpl (revision 4066) +++ templates/rssitem.tmpl (working copy) @@ -12,7 +12,8 @@ - + + Index: IkiWiki/Plugin/inline.pm =================================================================== --- IkiWiki/Plugin/inline.pm (revision 4066) +++ IkiWiki/Plugin/inline.pm (working copy) @@ -361,8 +361,10 @@ title => pagetitle(basename($p)), url => $u, permalink => $u, - date_822 => date_822($pagectime{$p}), - date_3339 => date_3339($pagectime{$p}), + cdate_822 => date_822($pagectime{$p}), + mdate_822 => date_822($pagemtime{$p}), + cdate_3339 => date_3339($pagectime{$p}), + mdate_3339 => date_3339($pagemtime{$p}), ); if ($itemtemplate->query(name => "enclosure")) { @@ -397,7 +399,7 @@ $content.=$itemtemplate->output; $itemtemplate->clear_params; - $lasttime = $pagectime{$p} if $pagectime{$p} > $lasttime; + $lasttime = $pagemtime{$p} if $pagemtime{$p} > $lasttime; } my $template=template($feedtype."page.tmpl", blind_cache => 1);
Yes I noticedthe bug today; the correct (tested on feedvalidator) rssitem.tmpl template must start with the following content:
<item>
<TMPL_IF NAME="AUTHOR">
<title><TMPL_VAR AUTHOR ESCAPE=HTML>: <TMPL_VAR TITLE></title>
<dcterms:creator><TMPL_VAR AUTHOR ESCAPE=HTML></dcterms:creator>
<TMPL_ELSE>
<title><TMPL_VAR TITLE></title>
</TMPL_IF>
<dcterms:modified><TMPL_VAR MDATE_3339></dcterms:modified>
<dcterms:created><TMPL_VAR DATE_3339></dcterms:created>
....
and rsspage.tmpl must start with:
<?xml version="1.0"?>
<rss version="2.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dcterms="http://purl.org/dc/terms/" >
....