rss

Comment générer un fichier rss.xml pour votre site.

1 min de lecture

Qu'est-ce que le rss ?

Le rss est un fichier XML qui contient des informations sur vos articles, et est utilisé pour suivre les actualités d'un site.

Par exemple, sur ce site cela donne rss.xml.
N'importe qui peut s'abonner à ce flux, ainsi dès qu'un nouveau post est publié la personne n'aura qu'à actualiser son flux pour voir qu'il y a de nouveaux articles.

Comment générer un fichier rss.xml ?

import { writeFileSync } from "node:fs";
import { globalMetadata } from "@/lib/constants";
import { allDocuments } from "contentlayer/generated";
 
import RSS from "rss";
 
const site_url = globalMetadata.metadataBase.toString().replace(/\/$/, "");
 
const allCategories = new Set(allDocuments.flatMap((post) => post.fullTags));
 
const feed = new RSS({
	title: globalMetadata.title.default,
	description: globalMetadata.description,
	site_url: site_url,
	feed_url: `${site_url}/rss.xml`,
	image_url: `${site_url}${globalMetadata.openGraph.images[0].url}`,
	pubDate: new Date(),
	language: globalMetadata.openGraph.locale,
	managingEditor: `me@vahor.fr (${globalMetadata.creator})`,
	generator: "Vahor",
	categories: Array.from(allCategories),
});
 
for (const post of allDocuments) {
	feed.item({
		title: post.title,
		description: post.description,
		url: `${site_url}${post.url}`,
		date: post.datePublished,
		categories: post.fullTags,
	});
}
 
writeFileSync("./public/rss.xml", feed.xml({ indent: true }));

Comment voir si ça marche ?

Pour tester j'ai utilisé la cli nom
Comment utiliser nom ?
nom add https://vahor.fr/rss.xml
nom
main page in nom tui
main page in nom tui
post in nom tui
post in nom tui
On se retrouve maintenant avec un sitemap.xml, un llms.txt et un rss.xml, je pense que les 5 articles du site ont assez de visibilité 🤣