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/" >
....