Page 1 of 1

RSS feed valideert niet

Posted: Tue Nov 29, 2016 7:38 am
by Gregor
Na een periode dat mijn site offline is geweest, deze weer online gezet. Omdat ik de rssfeed gebruik voor het posten op SM, ontdekte ik dat de feed niet valideert:
https://validator.w3.org/feed/check.cgi ... sfeed.html

De feed wordt gemaakt via de content pagina (geen html) met daarin:

Code: Select all

{CGBlog summarytemplate="CGBlogFeed" number="1000"}
In CGBLog staat in het summary template:

Code: Select all

<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<atom:link href="http://www.uisge-beatha.eu/rssfeed" rel="self" type="application/rss+xml" />
<title>RSS feeds uit het logboek en met nieuwtjes van Uisge Beatha</title>
<link>http://www.uisge-beatha.eu/rssfeed</link>
<description>RSS feeds uit het logboek en met nieuwtjes van Uisge Beatha</description>
<copyright>(c) Gregor J. de Graaf</copyright>
<generator>CMS Made Simple</generator>
{foreach from=$items item='entry'}
    <item>
        <title>{$entry->title|escape|truncate:65}</title>
        <pubDate>{$entry->postdate|rfc_date}</pubDate>
        <link>{$entry->detail_url}</link>
        {capture assign=foo}{if $entry->summary}{eval var=$entry->summary|strip_tags}{else if $entry->content}{eval var=$entry->content|strip_tags}{/if}{/capture}
        <description>{if $entry->fieldsbyname.facebook_thumbnail->value != ''}<img width="150" height="200" style="width:150px;height:200px;padding-bottom:10px;padding-right:10px;float:left;" src={$entry->file_location}/{$entry->fieldsbyname.facebook_thumbnail->value}>{else}<img width="150" height="200" style="width:150px;height:200px;padding-bottom:10px;padding-right:10px;float:left;" src="{root_url}&#47;uploads&#47;images&#47;uisge-beatha-front.jpg">{/if}{$foo|strip_tags|strip|truncate:150}
        </description>
        <guid>{$entry->detail_url}</guid>
    </item>
{/foreach}
</channel>
</rss>
Na een poosje puzzelen ben ik er niet uit wat nou de reden is waarom de validator nu over "speciale karakters" valt. Iemand een idee hoe ik dit kan oplossen?

Verder vindt de Validator een "self"-verwijzing niet leuk.
line 3, column 93: Self reference doesn't match document location [help]
Kan ik deze probleemloos weghalen?

Dank alvast voor het meedenken!

Re: RSS feed valideert niet

Posted: Tue Nov 29, 2016 8:26 am
by tristan
Wellicht door de encoding aan te geven, zie ook:

https://www.w3.org/TR/REC-xml/#NT-EncodingDecl

Die andere foutmelding over Self reference geeft hij nu niet meer trouwens?

Leuke site trouwens, veel uitgebreider dan de site voor ons bootje: https://8304.nl!

Re: RSS feed valideert niet

Posted: Tue Nov 29, 2016 8:31 am
by Rolf
Probeer eens {$foo|strip_tags|escape|strip|truncate:150}

PS. Of iets als: {$foo|strip_tags|cms_escape:htmlall|strip|truncate:150}
In ieder geval breekt de feed op de quotes die in de tekst staan.

Re: RSS feed valideert niet

Posted: Tue Nov 29, 2016 9:00 am
by Gregor
Dank je voor het compliment over de site :) Uitgebreider... Veel schrijven ;)

Het toevoegen van encoding, verschillende plaatsen geprobeerd, maar dat 'slikt' de validator niet.

De suggestie van Rolf geeft de volgende melding:
This feed does not validate.
line 2364, column 76: IRI found where URL expected: http://www.uisge-beatha.eu/logboek/170/ ... zilië.html (5 occurrences) [help]
<link>http://www.uisge-beatha.eu/logboek/170/ ... zilië.html ...
^
line 2367, column 76: IRI found where URL expected: http://www.uisge-beatha.eu/logboek/170/ ... zilië.html (5 occurrences) [help]
<guid>http://www.uisge-beatha.eu/logboek/170/ ... zilië.html ...
^
In addition, interoperability with the widest range of feed readers could be improved by implementing the following recommendations.
Feeds should not be served with the "text/html" media type [help]
https://validator.w3.org/feed/check.cgi ... html#l2364

Re: RSS feed valideert niet

Posted: Tue Nov 29, 2016 9:31 am
by Rolf
Gebruik je in de pagina een content_type UDT zoals beschreven in http://www.cmscanbesimple.org/blog/crea ... t-a-module ?

Re: RSS feed valideert niet

Posted: Tue Nov 29, 2016 9:49 am
by Gregor
Ja, die is er inderdaad tijdens de upgrade ingezet.

Ik zie ook dat de validator over zijn nek gaat omdat er in heel veel artikelen "vreemde" ascii-tekens staan, bijv.  
Ben aan het kijken of ik deze karakters kan vinden en in een keer uit de db kan halen :/

Re: RSS feed valideert niet

Posted: Tue Nov 29, 2016 10:27 am
by Gregor
De validator blijft moeite houden met speciale tekens:
Sorry

This feed does not validate.
line 2365, column 76: IRI found where URL expected: http://www.uisge-beatha.eu/logboek/170/ ... zilië.html (2 occurrences) [help]
<link>http://www.uisge-beatha.eu/logboek/170/ ... zilië.html ...
^
line 2368, column 76: IRI found where URL expected: http://www.uisge-beatha.eu/logboek/170/ ... zilië.html (2 occurrences) [help]
<guid>http://www.uisge-beatha.eu/logboek/170/ ... zilië.html ...
^
line 3094, column 252: XML parsing error: <unknown>:3094:252: undefined entity [help]
... eatha-front.jpg"> Vroeg vanuit Brunsb&uuml;ttel vertrokken om uiteind ...
Dus de ü in het woord "Brunsbüttel" wordt vertaald, maar niet geaccepteerd.

Heb de suggesties van Rolf's site overgenomen en daardoor is er een nieuwe link gemaakt: http://www.uisge-beatha.eu/rssfeed.rss

Re: RSS feed valideert niet

Posted: Wed Nov 30, 2016 4:02 pm
by Gregor
Gelukt :) Weet niet of het helemaal volgens de regelen der kunst is, W3 valideert 'm in ieder geval. Hieronder mijn oplossing:

Code: Select all

<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<atom:link href="{root_url}/rssfeed.rss" rel="self" type="application/rss+xml" />
<title>RSS feeds uit het logboek en met nieuwtjes van Uisge Beatha</title>
<link>http://www.uisge-beatha.eu/rssfeed</link>
<description>RSS feeds uit het logboek en met nieuwtjes van Uisge Beatha</description>
<copyright>(c) Gregor J. de Graaf</copyright>
<generator>CMS Made Simple</generator>
{foreach from=$items item='entry'}
    <item>
        <title>{$entry->title|escape|truncate:65}</title>
        <pubDate>{$entry->postdate|rfc_date}</pubDate>
        <link><![CDATA[{$entry->detail_url|cms_escape:htmlall}]]></link>
        {capture assign=foo}{if $entry->summary}{eval var=$entry->summary|strip_tags}{else if $entry->content}{eval var=$entry->content|strip_tags}{/if}{/capture}
        <description>{if $entry->fieldsbyname.facebook_thumbnail->value != ''}<img width="150" height="200" style="width:150px;height:200px;padding-bottom:10px;padding-right:10px;float:left;" src={$entry->file_location}/{$entry->fieldsbyname.facebook_thumbnail->value}>{else}<img width="150" height="200" style="width:150px;height:200px;padding-bottom:10px;padding-right:10px;float:left;" src="{root_url}&#47;uploads&#47;images&#47;uisge-beatha-front.jpg">{/if}{$foo|strip_tags|cms_escape:html|strip|truncate:150}
{* url was htmlall *}
        </description>
        <guid isPermaLink="false">{$entry->detail_url|cms_escape:url}</guid>
    </item>
{/foreach}
</channel>
</rss>