abseil/abseil.github.io

Feed Validation Error: RSS 2.0 instead Atom

Opened this issue · 0 comments

Hi,
I have a small problem with the feed for publication dates that are not correctly detected in Liferea, the 'news reader' I currently use .
Searching on 'Jekyll' doc and for Jekyll Feed plugin it seems that feed.xml is classified as 'RSS 2.0' (rss version="2.0") but coded as 'Atom'.
For the validation I also used the W3C Validator site.
Having the 'jekyll/jekyll-feed' feed.xml as reference I did some local tests by changing some xml fields to get the validation and I came to have an acceptable situation (only some validation warning) with the attached changes.
I attach the changes here as not knowing the site and all its information are unable to build a dedicated pull request with all correct data for the feed.

Thanks for your work.
Enrico

feed-atom-test.patch

diff --git a/feed.xml b/feed.xml
index 8e7a351..aa36233 100644
--- a/feed.xml
+++ b/feed.xml
@@ -2,22 +2,27 @@
 layout: null
 ---
 <?xml version="1.0" encoding="utf-8"?>
-<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
-  <channel>
+<feed xmlns="http://www.w3.org/2005/Atom" {% if site.lang %}xml:lang="{{ site.lang }}"{% endif %}>
     <title>Abseil Blog &amp; Tips</title>
-    <description>An open-source collection of C++ library code designed to
-    augment the C++ standard library</description>
-    <link>{{ site.url }}</link>
+    <subtitle>An open-source collection of C++ library code designed to
+    augment the C++ standard library</subtitle>
+    <updated>{{ site.time | date_to_xmlschema }}</updated>
+    <id>{{ site.url | xml_escape }}</id>
     {% for post in site.posts %}
       {% unless post.draft %}
-        <item>
-          <title>{{ post.title | xml_escape }}</title>
-          <description>{{ post.content | xml_escape }}</description>
-          <pubDate>{{ post.date | date_to_xmlschema }}</pubDate>
-          <link>{{ post.url | prepend: site.url }}</link>
-          <guid isPermaLink="true">{{ post.url | prepend: site.url }}</guid>
-        </item>
+        <entry>
+          <title type="html">{{ post.title | xml_escape }}</title>
+          <content type="html">{{ post.content | xml_escape }}</content>
+          <published>{{ post.date | date_to_xmlschema }}</published>
+          <updated>{{ post.date | date_to_xmlschema }}</updated>
+          <link href="{{ post.url | prepend: site.url }}" />
+          <author>
+            <name>{{ post_author_name | default: "???" | xml_escape }}</name>
+          </author>
+          <link href="{{ post.url | prepend: site.url }}" type="text/html" title="{{ post_title }}" />
+          <id>{{ post.id | absolute_url | xml_escape }}</id>
+        </entry>
       {% endunless %}
     {% endfor %}
-  </channel>
-</rss>
\ No newline at end of file
+</feed>
+