Search code examples
pythonrsspelican

Fixing validation errors in Pelican RSS Feeds


I am using Pelican 3.2 to generate a blog with RSS feeds. However, running the RSS feed through W3C's feed validator raises the following errors:

guid must be a full URL, unless isPermaLink attribute is false

One of the offending lines is

<guid>tag:foo,2013-08-07:bar.html</guid>

It appears that Pelican uses feedgenerator, but I couldn't find any relevant configuration options.

How should I fix this?


Solution

  • I believe the solution is to modify feedgenerator, changing:

    handler.addQuickElement("guid", item['unique_id'])
    

    ...to:

    handler.addQuickElement('guid isPermaLink="false"', item['unique_id'])
    

    RSS already has a link attribute; feedgenerator currently assumes the unique_id is a URL and should not do so. I suspect this is the best way to address the problem.