Flux RSS valide avec Thingamablog
Publié : 08 avr. 2005, 23:31
Je tente depuis un moment de faire un flux RSS valide avec Thingamablog. Par défaut, il génère un flux RSS 2.0 (donc pas du vrai XML, car ni doctype ni namespace), et à cause d'un bug (que j'ai rapporté) celui-ci n'est même pas valide si votre système n'est pas en anglais.
Donc, je me suis lancé dans la fabrication d'un fil RSS 1.0. Coup de chance, on peut effectuer deux fois la boucle <BlogEntry> ce qui est nécessaire pour faire du RDF. On peut facilement tout adapter, mais les dates, encore elles, vont poser problèmes. Comment faire une date valide ? Impossible de mettre un "T" dans la date, donc il faut oublier les heures et les minutes. Mais on peut se contenter de la date YYYY-MM-DD simplement, surtout si on ne fait pas trop trop de MAJ. Dans ce cas, voici le code que j'ai utilisé :(Attention, valable uniquement dans Thingamablog 1.0b4 !)
À vrai dire j'ai simplifié le code, j'utilise des balises de syndication, <dc:creator> et creative commons, mais il est facile de les rajouter. Voir le tuto d'OpenWeb sur ce sujet qui est très complet et précis.
On a donc un fil RSS 1.0 valide... ah non tiens, il me reste une erreurEst-ce que quelqu'un a une idée de quoi ça peut venir ? Merci d'avance 

Donc, je me suis lancé dans la fabrication d'un fil RSS 1.0. Coup de chance, on peut effectuer deux fois la boucle <BlogEntry> ce qui est nécessaire pour faire du RDF. On peut facilement tout adapter, mais les dates, encore elles, vont poser problèmes. Comment faire une date valide ? Impossible de mettre un "T" dans la date, donc il faut oublier les heures et les minutes. Mais on peut se contenter de la date YYYY-MM-DD simplement, surtout si on ne fait pas trop trop de MAJ. Dans ce cas, voici le code que j'ai utilisé :
Code : Tout sélectionner
<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:cc="http://web.resource.org/cc/"
xmlns="http://purl.org/rss/1.0/">
<channel rdf:about="http://home.etu.unige.ch/~robin0/blog/rss.xml">
<title><$BlogTitle$></title>
<link><$FrontPageLink$></link>
<description><$BlogDescription$></description>
<dc:language><$Lang$>-<$Country$></dc:language>
<dc:date><$CurrentDate format="yyyy-MM-dd"$></dc:date>
<items>
<rdf:Seq><BlogEntry>
<rdf:li rdf:resource="<$EntryPermalink$>" /></BlogEntry>
</rdf:Seq>
</items>
</channel>
<BlogEntry>
<item rdf:about="<$EntryPermalink$>">
<title><EntryTitle><$EntryTitle$></EntryTitle></title>
<content:encoded><![CDATA[<$EntryBody encode_html="0"$>]]></content:encoded>
<link><$EntryPermalink$></link>
<EntryCategories> <dc:subject><$CategoryName$></dc:subject>
</EntryCategories> <dc:date><$EntryDateTime format="yyyy-MM-dd"$></dc:date>
</item>
</BlogEntry>
</rdf:RDF>
À vrai dire j'ai simplifié le code, j'utilise des balises de syndication, <dc:creator> et creative commons, mais il est facile de les rajouter. Voir le tuto d'OpenWeb sur ce sujet qui est très complet et précis.
On a donc un fil RSS 1.0 valide... ah non tiens, il me reste une erreur
Code : Tout sélectionner
line 1, column 0: 'ascii' codec can't decode byte 0xab in position 0: ordinal not in range(128) (maybe a high-bit character?)
