![]() Un générateur de site statique qui casse des briques. VenC est tellement rapide qu'il enfreint le principe de causalité et produit de l'énergie surunitaire ! |
VenC peut générer un flux Atom ou RSS en suivant la même logique de construction que celle des pages HTML de votre site, c'est-à-dire avec un entête, un corps et un pied de page. Vous pouvez également y utiliser les mêmes motifs que ceux que nous avons vus dans les chapitres 3.5.2, 3.5.3 et 3.5.4.
Nous allons voir ici comment programmer les trois fichiers qui composent le flux Atom :
Pour en savoir plus sur le format Atom lui-même, rendez-vous ici.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> <link href=".:GetBlogURL:..:GetRelativeLocation:./atom_feed.xml" rel="self" type="application/atom+xml" /> <link href=".:GetBlogURL:." rel="alternate" type="text/html" /> <title>.:GetBlogName:. .:GetThreadName::| {value}:.</title> .:GetBlogMetadataIfNotNull::blog_description::<subtitle>{value}</subtitle>:. <id>.:GetBlogURL:..:GetRelativeLocation:.</id> <updated>.:GetLastEntryTimestamp::%Y-%m-%dT%H:%M:%SZ:.</updated> <author> .:GetBlogMetadataIfNotNull::author_name::<name>{value}</name>:. .:GetBlogMetadataIfNotNull::author_email::<email>{value}</email>:. </author> |
Comme on peut le voir, il y a des similitudes avec ce qui a été réalisé et montré dans le chapitre 3.5.2.
Les nouveautés ici, c'est que l'on construit des URL uniques avec GetBlogURL
et
GetRelativeLocation
comme on peut le voir aux lignes 4, 9 et 13.
On utilise également à la ligne 14 le motif GetLastEntryTimestamp
pour avoir
l'horodatage de la dernière publication du site.
1 2 3 4 5 6 7 8 9 | <entry> <id>.:GetBlogURL:./.:GetEntryPath:.</id> <title>.:GetEntryTitle:.</title> <link href=".:GetBlogURL:./.:GetEntryPath:." rel="alternate" type="text/html"/> <updated>.:GetEntryDate::%Y-%m-%dT%H:%M:%SZ:.</updated> <content type="xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">.:GetEntryPreview:.</div> </content> </entry> |
Ici, nous utilisons à la ligne 7 GetEntryPreview
. Ici ça a du sens, car
nous sommes dans un flux Atom dont le but est de présenter succinctement les dernières publications. Rien ne vous empêche cependant d'utiliser
GetEntryContent
.
Comme dans atomHeader.xml
, on crée aux lignes 2 et 4 une même URL unique qui correspond à la publication avec GetBlogURL
et
GetEntryPath
que nous avons déjà vu dans les chapitres précédents.
</feed>
Facile !
Nous allons voir ici comment programmer les trois fichiers qui composent le flux RSS :
Pour en savoir plus sur le format RSS, rendez-vous ici.
1 2 3 4 5 6 | <?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <channel> <title>.:GetBlogName:. .:GetThreadName::| {value}:.</title> <link>.:GetBlogURL:..:GetRelativeLocation:.</link> <description>.:GetBlogDescription:.</description> |
Sans grande surprise, ça fonctionne un peu comme le flux Atom vu au chapitre 3.5.5.1.
On indique dans l'entête, aux lignes 5 et 7, l'URL du site avec GetBlogURL
et
GetRelativeLocation
.
1 2 3 4 5 6 7 8 9 10 11 | <item> <title>.:GetEntryTitle:.</title> <link>.:GetBlogURL:./.:GetEntryPath:.</link> <guid isPermaLink="true">.:GetBlogURL:./.:GetEntryPath:.</guid> <pubDate>.:GetEntryDate::%a, %d %b %Y %H:%M:%S GMT:.</pubDate> <description> <![CDATA[ .:GetEntryPreview:. ]]> </description> </item> |
L'utilisation de GetBlogURL
et de GetEntryPath
aux lignes 3 et 4 sert le même usage que
celui montré dans atomEntry.xml
.
Idem pour GetEntryPreview
, on peut également utiliser GetEntryContent
.
</channel> </rss>
Rien à faire de bien compliqué, si ce n'est fermer ce qui a été ouvert. Trivial !