Flux RSS valide avec Thingamablog

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !

Modérateur : Asumbaa

Avatar de l’utilisateur
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51
Localisation : Le frigo scandinave
Contact :

Flux RSS valide avec Thingamablog

Message par calimo » 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. :roll:

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>
(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 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?)
Est-ce que quelqu'un a une idée de quoi ça peut venir ? Merci d'avance :wink:

guilhem_mdg
Lézard à collerette
Messages : 438
Inscription : 18 juin 2004, 09:13
Localisation : FRANCE

Message par guilhem_mdg » 12 avr. 2005, 17:27

Bah je dirai que ton code XML contient des lettres accentuées tout en étant déclaré en "UTF-8"...
Pour une meilleure compatibilité, tu devrais changer:

Code : Tout sélectionner

<?xml version="1.0" encoding="utf-8"?>
Par

Code : Tout sélectionner

<?xml version="1.0" encoding="iso-8859-1"?>
Ou bien enlever toutes les lettres accentuées de ton code XML... ;-)
Cordialement.
Guilhem.

Avatar de l’utilisateur
Xanthor
Lézard à collerette
Messages : 280
Inscription : 29 juil. 2003, 18:36
Localisation : Fr
Contact :

Message par Xanthor » 12 avr. 2005, 18:29

Non², c'est bien de l'UTF8
Le problème reporté vient d'un BOM mal supporté par ce validateur.
Le validateur du W3C confirme que tout va bien.

Avatar de l’utilisateur
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51
Localisation : Le frigo scandinave
Contact :

Message par calimo » 12 avr. 2005, 20:52

guilhem_mdg a écrit :Bah je dirai que ton code XML contient des lettres accentuées tout en étant déclaré en "UTF-8"...
Le but de l'utf-8 est justement de supporter un maximum de caractères, y-compris bien sur les caractères accentués :roll:

Bon en tous cas le problème n'intervient plus, le flux est valide (avec quelques warnings), je ne sais pas ce qui s'est passé mais merci pour votre aide, j'y penserai si je revois l'erreur et je leur soumettrai le problème :wink:

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité