Nos articles concernant les techniques web sont centrés sur des solutions pratiques qui mettent en œuvre, le plus souvent, notre framework web : Vae Soli!
Des articles généraux sont également fournis dans le respect des standards du web.
Tous nos articles web sont disponibles sous le couvert de la
licence
Creative Commons — Paternité - pas de modification.
Cet article est notre deuxième échange avec la société FastWrite: grâce à un contenu syndiqué, nous sommes désormais à même de proposer les mêmes articles sur deux sites différents, sans devoir pour autant « recopier » le contenu d'un site vers l'autre : cela se fait de manière automatique, et ce, grâce au framework Vae Soli!.
RSS veut dire Really Simple Syndication. Cela ne vous apprend probablement rien ou si peu, même si au demeurant une petite définition de RSS est disponible sur le glossaire de FastWrite : glossaire ! Il faudrait savoir à quoi peut servir RSS pour que vous puissiez vous faire une idée précise. Alors voyons cela immédiatement.
Imaginez par exemple que vous ayez un site web qui se modifie régulièrement. Imaginez que vous souhaitiez tenir les utilisateurs de votre site informés des changements intervenus. Imaginez que vous vouliez faire cela fréquemment. Comment vous y prendriez-vous ?
Plusieurs options sont à votre disposition. RSS est l'une d'entre elles … mais vous n'imaginez même pas que cela existe. Ou si vous savez que cela existe … vous ne savez pas comment vous y prendre.
En fait, RSS fonctionne comme un système de souscription. Un utilisateur souscrit aux nouvelles et il les reçoit dans sa boîte aux lettres ... automatiquement ... sans rien faire !
Bien faire ... et le faire savoir.
L'utilisateur n'est pas obligé de visiter votre site pour parcourir la page des nouvelles ! Il a souscrit à un abonnement, il peut l'arrêter quand il veut et tant qu'il est satisfait … il reçoit les nouvelles prêtes à être lues. RSS (Really Simple Syndication) c'est un système d'abonnement si vous voulez.
C'est vraiment pratique ... car cela fonctionne un peu comme de l'email.
Le côté génial de l'affaire c'est tout le côté entièrement automatique. C'est normal … car ce sont des programmes qui tournent sans arrêt qui extraient les nouvelles et les «poussent» dans la boîte aux lettre de l'internaute.
Comment est-ce possible ? Comment ces programmes sont-ils capables de savoir où se trouve le texte des nouvelles à extraire ? Comment connaissent-ils le sujet qui est traité ? etc.
C'est simple ! Toute cette information est structurée de telle sorte que les programmes savent exactement qui est l'auteur d'une nouvelle, le domaine qu'elle traite, la date à laquelle elle a été publiée, etc. Toute cette structuration d'information permet donc à des «non humains» de lire des nouvelles et de les publier d'un site à l'autre.
Prenons un exemple concret : FastWrite réalise des sites web. Un de ces sites web est le site web de la Bibliothèque de Kraainem.
Si la Bibliothèque de Kraainem publiait ses nouvelles sous forme de RSS, alors FastWrite pourrait récupérer les nouvelles et les publier sur son propre site, dans … le tout entièrement automatique : Dernières nouvelles de la BIB pourrait ainsi être affiché sur le site de FastWrite tout en gardant lesdites nouvelles sur le site de la BIB. Vous comprenez ?
Autre exemple concret : vous êtes la filiale belge d'un groupe international. Sur le site belge, il y a bien sûr une page «Actualité». Mais il y a également des nouvelles sur le site français, le site anglais, le site allemand, etc. Vous voulez récupérer toutes ces nouvelles et les publier sur le site belge. Rien de plus facile avec RSS : les nouvelles de France, d'Angleterre ou d'Allemagne sont incluses automatiquement sur le site belge grâce à ... RSS (Really Simple Syndication).
C'est clair comme du cristal ? Bon ... ben il ne reste plus qu'à créer un RSS pour que cela marche !
Créer un RSS n'a rien de difficile (on parle de «RSS feed» ou de «flux RSS»). Si vous savez comment créer du (X)HTML vous êtes suffisamment armé pour créer un RSS. Un flux RSS n'est rien d'autre qu'un fichier XML (eXtensible Markup Language). Au passage, nous vous suggérons notre cours web si vous pensez ne pas être suffisamment armé.
Un fichier XML (eXtensible Markup Language) certes, mais encore faut-il en connaître le format ! Oops ... vous avez raison. Bien que tout cela reste parfaitement simple ... c'est néanmoins là que les Romains s'empoignèrent !
Il existe plusieurs formats de RSS. Il existe le format RSS 0.90, RSS 0.91, RSS 0.92, RSS 0.93, RSS 1.0, Atom, ...
De notre côté ... nous ferons les choses le plus simplement possible en nous contentant du format RSS 2.0 qui a été publié au travers de la Harvard sous couvert de licence Creative Commons le 15 juillet 2003 : spécifications de RSS 2.0.
La spécification RSS 2.0 est celle que nous utilisons ... nous pouvons donc vous indiquer comment cela fonctionne. Nous fournissons également quelques liens intéressants sur la page de nos liens utiles (voyez la partie RSS)
Un fichier RSS 2.0 comporte quelques lignes obligatoires. En voici un exemple tiré du site de la Harvard : http://media-cyber.law.harvard.edu/blogs/gems/tech/rss2sample.xml
<?xml version="1.0" ?>
<rss version="2.0">
<channel>
<title>Liftoff News</title>
<link>http://liftoff.msfc.nasa.gov/</link>
<description>Liftoff to Space Exploration.</description>
<language>en-us</language>
<pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate>
<lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<generator>Weblog Editor 2.0</generator>
<managingEditor>editor@example.com</managingEditor>
<webMaster>webmaster@example.com</webMaster>
<item>
<title>Star City</title>
<link>http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp</link>
<description>How do Americans get ready to work with Russians
aboard the International Space Station? They take a crash
course in culture, language and protocol at Russia's
<a href="http://howe.iki.rssi.ru/GCTC/gctc_e.htm">Star City</a>.</description>
<pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/06/03.html#item573</guid>
</item>
<item>
<description>Sky watchers in Europe, Asia, and parts of Alaska and Canada
will experience a <a href="http://science.nasa.gov/headlines/y2003/30may_solareclipse.htm">
partial eclipse of the Sun</a> on Saturday, May 31st.</description>
<pubDate>Fri, 30 May 2003 11:06:42 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/05/30.html#item572</guid>
</item>
<item>
<title>The Engine That Does More</title>
<link>http://liftoff.msfc.nasa.gov/news/2003/news-VASIMR.asp</link>
<description>Before man travels to Mars, NASA hopes to design new
engines that will let us fly through the Solar System more
quickly. The proposed VASIMR engine would do that.</description>
<pubDate>Tue, 27 May 2003 08:37:32 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/05/27.html#item571</guid>
</item>
<item>
<title>Astronauts' Dirty Laundry</title>
<link>http://liftoff.msfc.nasa.gov/news/2003/news-laundry.asp</link>
<description>Compared to earlier spacecraft, the International Space
Station has many luxuries, but laundry facilities are not one
of them. Instead, astronauts have other options.</description>
<pubDate>Tue, 20 May 2003 08:56:02 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/05/20.html#item570</guid>
</item>
</channel>
</rss>
Ne paniquez pas à voir toutes ces balises auxquelles vous ne comprenez rien. On va les parcourir une à une et créer notre propre flux RSS ... comme si nous étions la Bibliothèque de Kraainem. C'est parti.
Commençons par le commencement : un fichier RSS 2.0 est un fichier XML
(eXtensible markup Language). Il doit donc commencer par la ligne
<?xml version="1.0" ?> ... c'est la
déclaration XML.
<?xml version="1.0" ?>
En outre ... vous seriez bien inspiré d'indiquer quel est le type
d'encodage du jeu de caractères. Nous ne voulons pas vous assommer
de théorie alors disons pour faire simple que vous choisissez le jeu
de caractères correspondant à notre alphabet avec caractères accentués :
<?xml version="1.0" encoding="iso-8859-15" ?>
Voici ce que cela donne :
<?xml version="1.0" encoding="iso-8859-15" ?>
Puis ... il faudra indiquer que c'est du RSS 2.0 :
<?xml version="1.0" encoding="iso-8859-15" ?>
<rss version="2.0">
... ICI ON VA METTRE LES NOUVELLES !
</rss>
Cela n'est pas mal du tout. Maintenant ... il faut voir comment on écrit les nouvelles sous forme de RSS : que devons-nous mettre à la place de ICI ON VA METTRE LES NOUVELLES ?
En fait ... cela vient en deux parties. La première partie est destinée à décrire le genre de nouvelles qu'on trouve dans le RSS. La deuxième partie ce sont les nouvelles proprement dites :
Voyons directement la description du canal. Voilà de quelle partie on parle si on revient au flux RSS que nous avons utilisé jusqu'à présent (en rouge gras) :
<?xml version="1.0" ?>
<rss version="2.0">
<channel>
<title>Liftoff News</title>
<link>http://liftoff.msfc.nasa.gov/</link>
<description>Liftoff to Space Exploration.</description>
<language>en-us</language>
<pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate>
<lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<generator>Weblog Editor 2.0</generator>
<managingEditor>editor@example.com</managingEditor>
<webMaster>webmaster@example.com</webMaster>
<item>
<title>Star City</title>
<link>http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp</link>
<description>How do Americans get ready to work with Russians aboard the International Space Station? They take a crash course in culture, language and protocol at Russia's <a href="http://howe.iki.rssi.ru/GCTC/gctc_e.htm">Star City</a>.</description>
<pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/06/03.html#item573</guid>
</item>
<item>
<description>Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a <a href="http://science.nasa.gov/headlines/y2003/30may_solareclipse.htm">partial eclipse of the Sun</a> on Saturday, May 31st.</description>
<pubDate>Fri, 30 May 2003 11:06:42 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/05/30.html#item572</guid>
</item>
... ETC.
</channel>
</rss>
Quant aux nouvelles proprement dites, voilà où elles se trouvent dans le feed RSS 2.0 :
<?xml version="1.0" ?>
<rss version="2.0">
<channel>
<title>Liftoff News</title>
<link>http://liftoff.msfc.nasa.gov/</link>
<description>Liftoff to Space Exploration.</description>
<language>en-us</language>
<pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate>
<lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<generator>Weblog Editor 2.0</generator>
<managingEditor>editor@example.com</managingEditor>
<webMaster>webmaster@example.com</webMaster>
<item>
<title>Star City</title>
<link>http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp</link>
<description>How do Americans get ready to work with Russians aboard the International Space Station? They take a crash course in culture, language and protocol at Russia's <a href="http://howe.iki.rssi.ru/GCTC/gctc_e.htm">Star City</a>.</description>
<pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/06/03.html#item573</guid>
</item>
<item>
<description>Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a <a href="http://science.nasa.gov/headlines/y2003/30may_solareclipse.htm">partial eclipse of the Sun</a> on Saturday, May 31st.</description>
<pubDate>Fri, 30 May 2003 11:06:42 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/05/30.html#item572</guid>
</item>
... ETC.
</channel>
</rss>
Bien ... ceci étant dit, décrivons le flux RSS, décrivons le canal (channel) pour lui donner un titre, une description, la date de dernière mise à jour, la date de publication, etc. :
<title>...</title>
de votre page d'accueil.<meta name="description" content="..." />
... pour autant évidemment que vous disposez de ce
genre de balise sur votre site web.Il existe encore pas mal d'autres tags possibles. Mais étant donné que ceux-ci sont optionnels, nous ne vous en parlons pas dans cet article de base.
À présent que nous avons décrit un flux RSS (cad le canal), décrivons une nouvelle
... vous savez la partie <item>...</item> ... comme dans ...
<?xml version="1.0" ?>
<rss version="2.0">
<channel>
<title>Liftoff News</title>
<link>http://liftoff.msfc.nasa.gov/</link>
<description>Liftoff to Space Exploration.</description>
<language>en-us</language>
<pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate>
<lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<generator>Weblog Editor 2.0</generator>
<managingEditor>editor@example.com</managingEditor>
<webMaster>webmaster@example.com</webMaster>
<item>
<title>Star City</title>
<link>http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp</link>
<description>How do Americans get ready to work with Russians aboard the International Space Station? They take a crash course in culture, language and protocol at Russia's <a href="http://howe.iki.rssi.ru/GCTC/gctc_e.htm">Star City</a>.</description>
<pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/06/03.html#item573</guid>
</item>
<item>
<description>Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a <a href="http://science.nasa.gov/headlines/y2003/30may_solareclipse.htm">partial eclipse of the Sun</a> on Saturday, May 31st.</description>
<pubDate>Fri, 30 May 2003 11:06:42 GMT</pubDate>
<guid>http://liftoff.msfc.nasa.gov/2003/05/30.html#item572</guid>
</item>
... ETC.
</channel>
</rss>
Bien ! Alors ... il est évident que vous pouvez avoir autant de
<item>...</item> que vous avez de nouvelles à publier.
IsPermalink,
alors le GUID est considéré comme un URL à la condition que le tag
<link>...</link> n'ait pas été mentionné.Bien ... maintenant que le portrait d'ensemble a été brossé, et que nous avons détaillé ce qui s'y passe, lançons-nous dans la création d'un flux RSS pour la Bibliothèque de Kraainem ... ce qui a l'avantage d'être un exemple bien pratique. Nous tenons à dire que cet exemple est bien entendu complètement fictif.
<?xml version="1.0" encoding="iso-8859-15" ?>
<rss version="2.0">
<channel>
<title>Les nouvelles de la BIB de Kraainem</title>
<link>http://www.bibkraainem.be/</link>
<description>Les dernières nouvelles en provenance de la Bibliothèque francophone de Kraainem</description>
<language>fr</language>
<pubDate>Fri, 14 Apr 2006 11:30:00 GMT</pubDate>
<lastBuildDate>Fri, 14 Apr 2006 11:30:00 GMT</lastBuildDate>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<generator>Vae Soli PHP Generator</generator>
<managingEditor>gb-asc@swing.be (Guy Bingen)</managingEditor>
<webMaster>patrick.boens@fastwrite.com (Patrick Boens)</webMaster>
<item>
<title>Nouveautés Mars 2006</title>
<link>http://www.bibkraainem.be/viedusite.php</link>
<description>Les dernières nouveautés de Mars 2006 sont désormais disponibles sur notre site. Penchez-vous sur nos nouvelles acquisitions.</description>
<pubDate>Fri, 14 Apr 2006 11:30:00 GMT</pubDate>
<guid>http://www.bibkraainem.be/viedusite.php#AVRIL2006</guid>
</item>
<item>
<title>Statistiques d'accès au site</title>
<link>http://www.bibkraainem.be/viedusite.php</link>
<description>Depuis le 19 février 2006, date à laquelle nous avons entamé notre
mue annuelle (en tout cas sur le site de la BIB), nous avons observé
de très nettes modifications de comportement du site en général.
Nous vous livrons ici de manière brute nos premières observations</description>
<pubDate>Fri, 14 Apr 2006 11:30:00 GMT</pubDate>
<guid>http://www.bibkraainem.be/viedusite.php#STATSAVRIL2006</guid>
</item>
</channel>
</rss>
Et voilà ... c'est tout !
Vous savez que nous tenons, chez FastWrite, à valider le code que nous créons. C'est vrai lorsque nous créons des programmes en C, en C++, en C#, en Java, en PHP, etc. C'est aussi vrai quand nous concevons des pages en (X)HTML (eXtensible HyperText Markup Language) à l'aide de CSS (Cascading Style Sheets).
C'est donc forcément le cas lorsque nous créons des feeds RSS (Really
Simple Syndication). Pour valider vos RSS ... rendez-vous sur http://www.feedvalidator.org où
il vous suffira de mentionner l'adresse de votre feed RSS, par exemple
http://www.bibkraainem.be/rss/rss.xml.
Très bien nous direz-vous. Vous savez comment créer un flux RSS simple mais vous ne savez toujours pas comment le publier. Rien n'est plus simple : il suffit de mentionner sur vos pages HTML qu'un flux RSS est disponible.
Une seule ligne suffit :
<link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.bibkraainem.be/rss/rss.xml" />
Et alors ... vous ne voyez rien du tout ? C'est peut-être parce que vous utilisez Internet Explorer. Si vous utilisiez Opera par exemple il vous indiquerait qu'un flux RSS est disponible comme le prouve la capture d'écran qui suit :
Automatiquement ... vos visiteurs sont avertis qu'un flux RSS est disponible et s'ils cliquent dessus ils peuvent y souscrire :
Si vous y répondez par l'affirmative, Opera présente une fenêtre d'affichage de toutes les nouvelles contenues dans le flux :
De notre côté ... nous sommes ainsi abonnés à nombre de flux RSS qui nous tiennent régulièrement au courant de la vie du Web.
De votre côté pourquoi ne pas vous incrire aux nouvelles de la Libre Belgique par exemple (http://www.lalibre.be/rss/) ou du Soir (section économie : http://www.lesoir.be/rss/economie/page_5776.xml) ou de Visual FoxPro (http://msdn.microsoft.com/vfoxpro/rss.xml) ... ou de FastWrite (pour bientôt : http://www.fastwrite.com/rss//rss.xml).
Si votre navigateur Internet ne vous permet pas de vous inscrire facilement à un flux de nouvelles vous pouvez utiliser des programmes gratuits qui vous le premettront (ou alors ... changer de navigateur et dirigez-vous vers Opera ou Firefox) :
Voici une petite liste d'aggrégateurs de nouvelles :
Nous ne pouvons que vous suggérer l'excellent livre de Ben Hammersley : Deveoping Feeds with RSS and Atom paru chez O'Reilly - ISBN 0-596-00881-3.