RSS 2 humainement lisible

Catégorie Création | Tags : none

Suite à une recherche, on tombe parfois sur des fichiers RSS (ou équivalents) qui ne peuvent être décemment lus par un humain. Et pour cause il s’agit de fichiers destinés à des agrégateurs de contenus (logiciels ou sites). Cependant, en tant que webmaster, vous souhaitez sûrement ne pas perdre les visiteurs qui arrivent sur vos flux RSS et les réorienter vers votre site. Avec une transformation XSLT, il est possible de rendre le flux directement lisible dans le navigateur de l’internaute.


Lecture RSS

XSLT fondamental sur Amazon
Opera le fait, Firefox le fait et internet explorer 7 le fera : donner à lire à l’humain, simplement, un flux rss. Mais parce que les visiteurs ne s’abonnent pas forcement à vos flux, surtout si c’est leur première visite, il est souhaitable de leur permettre de lire facilement les flux RSS. Mais cela ne doit pas empêcher l’exploitation du flux par les aggrégateurs et sites exterieurs. La solution permettant de laisser intact le flux et d’offrir une visualisation lisible du fichier rss, s’appelle XSLT. Dans la suite de l’article je m’intéresse particulièrement aux fichiers RSS2.

XSLT : la solution


XSLT (eXtended Stylesheet Language Transformations) permet de transformer un fichier XML en tout autre type de fichier, ici en une page internet classique (html).

Lier le fichier RSS à la feuille de style XSLT

Il suffit pour cela d’ajouter dans le fichier php qui génère le fichier RSS un lien vers une feuille de style XLST, juste après la ligne de prologue XML :

// prologue xml, ici en UTF-8, déjà présent
echo '<?xml version="1.0" encoding="UTF-8"?'.'>';
// ligne à ajouter :
echo '<?xml-stylesheet type="text/xsl" href="http://site/tr.xslt.php"?>';

Evidement, il vous faut remplacer, le lien vers la feuille XSLT, http://site/tr.xslt.php, par le lien vers votre feuille de style XSLT.

Concrètement, dans Wordpress, il faut ajouter le lien XSLT aux fichiers wp-rss2.php et wp-commentsrss2.php. Personnellement, j’ai crée deux feuilles de style XSLT légerement différentes, donc les liens sont différents.

Créer le fichier XSLT

Basiquement, le XSLT n’est pas très compliqué pour qui sait programmer mais les possibilités offertes sont très nombreuses. Ici, je n’utilise que des choses très simples que je ne détaillerai pas. Le fichier XSLT ressemble à ceci :

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/rss/channel">
<html>
<style type="text/css">
	body {width:780px; margin:auto;}
</style>
<body>
<h1 style="text-align:center"><xsl:value-of select="title" /></h1>
<p style="background:#fdd; border:2px dashed red; padding:3px;
 font-weight:bold; text-align:center;">blabla pour dire
 que c'est un fichier rss et que le lecteur devrait se rendre sur
 le blog + lien.</p>

<xsl:for-each select="item">
<div><xsl:attribute name="class"><xsl:value-of select="category" />
</xsl:attribute>
<h2><a><xsl:attribute name="href"><xsl:value-of select="link" />
</xsl:attribute>
<xsl:value-of select="title" /></a></h2>
<p class="cat">Article publié dans la catégorie
<xsl:value-of select="category" /></p>
<p><xsl:value-of select="description" />
<br />
<a><xsl:attribute name="href"><xsl:value-of select="link" />
</xsl:attribute>Lire la suite...</a>
</p>
</div>
</xsl:for-each>

</body></html>
</xsl:template>
</xsl:stylesheet>

Vous noterez une étrangeté, je me sers du nom de la catégorie pour l’attribuer à un nom de class, j’ai en effet seulement 3 catégories, qui ne changeront pas et je m’en sers pour afficher le résumé du billet avec une couleur par catégorie. N’hésitez pas à télécharger mon fichier xslt.

MimeType obligatoire pour Firefox

Avec Opera ou Internet Explorer, pas de problème, si vous utilisez directement le fichier xslt.php téléchargé. Par contre, il y aura un problème avec Firefox. Firefox exige en effet que le fichier soit transmit avec le mimetype application/xml. C’est pourquoi j’ai utilisé un fichier php permettant d’envoyer une entête http :

header("Content-Type: application/xml");

En résumé

Les fichiers rss, ne sont pas directement lisibles par l’homme. Il est possible de ne pas altérer la lecture de ces fichiers par les programmes tout en permettant une mise en forme adaptée à l’homme. Pour cela on utilise les transformations XSLT. Il faut ajouter un lien vers le fichier XSLT dans le fichier XML et créer ce fichier XSLT (vous pouvez vous baser sur le mien, cela sera plus simple que d’apprendre XSL et ses amis). Il faut veiller a envoyer ce fichier XSLT avec le bon mimetype pour que Firefox puisse le lire.

C’est tout, simple non ? Pourtant nombre de blog, y compris des très fréquentés et réputés continuent à ne pas proposer de rss lisible…

Ajouter a mon :
Del.icio.us digg Technorati Socializer fuzz scoopeo wikio 

5 réponses à “RSS 2 humainement lisible”

  1. seb a écrit:

    Par exemple, a l’heure actuelle (18/10/2006), les résultats de la recherche “utilitaire depanneur”, donnent en première position un lien vers le flux rss de mon blog. Il est donc utile d’avoir un flux RSS mis en forme avec XSLT.

    recherche utilitaire depanneur sur google

  2. Delphine Dumont a écrit:

    Excellent et très puissant, surtout au regard de la facilité de mise en oeuvre !
    Merci ! :)

  3. kazhar a écrit:

    Suite à ton gentil mail, j’ai fait un autre choix. Utiliser feedburner, qui propose également d’afficher le rss à un format humainement visible, mais également, fait des statistiques sur ces flux.

  4. seb a écrit:

    Il est vrai que feedburner rend les flux rss lisibles sans faire d’effort. Ça peut-être une solution a envisager si on ne souhaite pas utiliser de présentation particulière et si on s’autorise a dépendre d’un site externe. Quant-aux statistiques, il est pratique de les déleguer si leur analyse correspond à l’attente. Je n’ai pas testé feedburner pour le moment.

  5. naisioxerloro a écrit:

    Hi.
    Good design, who make it?

Laisser un commentaire