From 7e6c60aa848856783278852a67f6215df7047d76 Mon Sep 17 00:00:00 2001 From: YoanRos Date: Thu, 28 Dec 2023 10:07:29 +0100 Subject: [PATCH] feat: site map generator --- pages/site-map.xml.js | 100 ++++++++++++++++++++++++++++++++++++++++++ public/sitemap.xml | 54 +++++++++++++++++++++++ site-map.xml | 62 -------------------------- 3 files changed, 154 insertions(+), 62 deletions(-) create mode 100644 pages/site-map.xml.js create mode 100644 public/sitemap.xml delete mode 100644 site-map.xml diff --git a/pages/site-map.xml.js b/pages/site-map.xml.js new file mode 100644 index 0000000..8a64365 --- /dev/null +++ b/pages/site-map.xml.js @@ -0,0 +1,100 @@ +import fs from "fs" +import matter from "gray-matter" +import path from "path" +import { serialize } from "next-mdx-remote/serialize" + +const URL = "https://ozensemble.fabrique.social.gouv.fr" + +function generateSiteMap(posts) { + return ` + + + ${URL} + 2023-12-16T19:39:33+00:00 + 1.00 + + + ${URL}/blog + 2023-12-16T19:39:35+00:00 + 0.80 + + + ${URL}/files/Affiche_OZ-Ensemble.pdf + 2023-12-16T19:39:33+00:00 + 0.80 + + + ${URL}/files/AFFICHE_OZ_-_Defi_de_Janvier.pdf + 2023-12-16T19:39:33+00:00 + 0.80 + + + ${URL}/files/DEPLIANT-OZ.pdf + 2023-12-16T19:39:33+00:00 + 0.80 + + + ${URL}/files/Dossier_de_presse_-_2023_-_Defi_de_Janvier.pdf + 2023-12-16T19:39:33+00:00 + 0.80 + + + ${URL}/files/25012023-Oz_Ensemble-Mentions_legales_site_V2.pdf + 2023-12-16T19:39:33+00:00 + 0.80 + + + ${URL}/files/25012023-Oz_Ensemble-Politique_de_confidentialite_site_V3.pdf + 2023-12-16T19:39:33+00:00 + 0.80 + + + ${URL}/stats + 2023-12-16T19:39:33+00:00 + 0.80 + + ${posts + .map(({ slug }) => { + return ` + + ${`${URL}/blog/${slug}`} + + ` + }) + .join("")} + + ` +} + +export default function SiteMap() { + return
{/* Render your sitemap content here */}
+} + +export async function getStaticProps() { + const files = fs.readdirSync(path.join(process.cwd(), "content")) + + const posts = await Promise.all( + files + .filter((fn) => fn.endsWith(".mdx")) + .map(async (filename) => { + const filePath = path.join(process.cwd(), "content", filename) + const rawContent = fs.readFileSync(filePath, "utf8") + const { content, data } = matter(rawContent) + const mdxSource = await serialize(content) + + return { + ...data, + mdxSource, + slug: filename.replace(".mdx", ""), + } + }) + ) + + const sitemap = generateSiteMap(posts) + console.log(sitemap) + fs.writeFileSync(path.join(process.cwd(), "public", "sitemap.xml"), sitemap) + + return { + props: { posts }, + } +} diff --git a/public/sitemap.xml b/public/sitemap.xml new file mode 100644 index 0000000..d88fb42 --- /dev/null +++ b/public/sitemap.xml @@ -0,0 +1,54 @@ + + + + https://ozensemble.fabrique.social.gouv.fr + 2023-12-16T19:39:33+00:00 + 1.00 + + + https://ozensemble.fabrique.social.gouv.fr/blog + 2023-12-16T19:39:35+00:00 + 0.80 + + + https://ozensemble.fabrique.social.gouv.fr/files/Affiche_OZ-Ensemble.pdf + 2023-12-16T19:39:33+00:00 + 0.80 + + + https://ozensemble.fabrique.social.gouv.fr/files/AFFICHE_OZ_-_Defi_de_Janvier.pdf + 2023-12-16T19:39:33+00:00 + 0.80 + + + https://ozensemble.fabrique.social.gouv.fr/files/DEPLIANT-OZ.pdf + 2023-12-16T19:39:33+00:00 + 0.80 + + + https://ozensemble.fabrique.social.gouv.fr/files/Dossier_de_presse_-_2023_-_Defi_de_Janvier.pdf + 2023-12-16T19:39:33+00:00 + 0.80 + + + https://ozensemble.fabrique.social.gouv.fr/files/25012023-Oz_Ensemble-Mentions_legales_site_V2.pdf + 2023-12-16T19:39:33+00:00 + 0.80 + + + https://ozensemble.fabrique.social.gouv.fr/files/25012023-Oz_Ensemble-Politique_de_confidentialite_site_V3.pdf + 2023-12-16T19:39:33+00:00 + 0.80 + + + https://ozensemble.fabrique.social.gouv.fr/stats + 2023-12-16T19:39:33+00:00 + 0.80 + + + + https://ozensemble.fabrique.social.gouv.fr/blog/reussir-son-dry-january-avec-oz-ensemble + + + + \ No newline at end of file diff --git a/site-map.xml b/site-map.xml deleted file mode 100644 index 2ffadf5..0000000 --- a/site-map.xml +++ /dev/null @@ -1,62 +0,0 @@ - - - -​ -​ - - https://ozensemble.fabrique.social.gouv.fr/ - 2023-12-16T19:39:33+00:00 - 1.00 - - - https://ozensemble.fabrique.social.gouv.fr/blog - 2023-12-16T19:39:35+00:00 - 0.80 - - - https://ozensemble.fabrique.social.gouv.fr/files/Affiche_OZ-Ensemble.pdf - 2023-12-16T19:39:33+00:00 - 0.80 - - - https://ozensemble.fabrique.social.gouv.fr/files/AFFICHE_OZ_-_Defi_de_Janvier.pdf - 2023-12-16T19:39:33+00:00 - 0.80 - - - https://ozensemble.fabrique.social.gouv.fr/files/DEPLIANT-OZ.pdf - 2023-12-16T19:39:33+00:00 - 0.80 - - - https://ozensemble.fabrique.social.gouv.fr/files/Dossier_de_presse_-_2023_-_Defi_de_Janvier.pdf - 2023-12-16T19:39:33+00:00 - 0.80 - - - https://ozensemble.fabrique.social.gouv.fr/files/25012023-Oz_Ensemble-Mentions_legales_site_V2.pdf - 2023-12-16T19:39:33+00:00 - 0.80 - - - https://ozensemble.fabrique.social.gouv.fr/files/25012023-Oz_Ensemble-Politique_de_confidentialite_site_V3.pdf - 2023-12-16T19:39:33+00:00 - 0.80 - - - https://ozensemble.fabrique.social.gouv.fr/stats - 2023-12-16T19:39:33+00:00 - 0.80 - - - https://ozensemble.fabrique.social.gouv.fr/blog/reussir-son-dry-january-avec-oz-ensemble - 2023-12-16T19:39:35+00:00 - 0.64 - -​ -​ - \ No newline at end of file