From 52d8102d67d74bd4067a524a1efda1cf4ba5b662 Mon Sep 17 00:00:00 2001 From: Quinn Hegeman <102350242+itsfinniii@users.noreply.github.com> Date: Sun, 8 Mar 2026 16:03:08 +0100 Subject: [PATCH] Fix the sitemap indexes --- astro/src/pages/sitemap/blogs.xml.ts | 21 ++++++++++++++++++++- astro/src/pages/sitemap/index.xml.ts | 19 ++++++++++++++++++- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/astro/src/pages/sitemap/blogs.xml.ts b/astro/src/pages/sitemap/blogs.xml.ts index dfe8f4e..3eae4fb 100644 --- a/astro/src/pages/sitemap/blogs.xml.ts +++ b/astro/src/pages/sitemap/blogs.xml.ts @@ -21,9 +21,28 @@ export const GET = (async () => { let sitemaps: SitemapIndex[] = []; for (let i = 0; i < pages; i++) { + const selectedBlogs = blogs.slice( + ((Number(i + 1) - 1) * settings.sitemap.perPage), + Number(i + 1) * settings.sitemap.perPage - 1 + ); + + let dates = [ + settings.sitemap.lastModified, + settings.blog.lastModified, + settings.website.lastModified + ]; + + selectedBlogs.forEach((blog) => { + dates.push(blog.lastModified); + }); + + const lastModified = dates.sort((a: Date, b: Date) => { + return b.getTime() - a.getTime(); + }); + sitemaps.push({ url: `/sitemap/blogs-${i + 1}.xml`, - lastModified: new Date() + lastModified: lastModified[0] }); } diff --git a/astro/src/pages/sitemap/index.xml.ts b/astro/src/pages/sitemap/index.xml.ts index 3a6535c..e76b10b 100644 --- a/astro/src/pages/sitemap/index.xml.ts +++ b/astro/src/pages/sitemap/index.xml.ts @@ -1,3 +1,4 @@ +import { getAllBlogs } from "@/content/blogs/blogs"; import { getSettings } from "@/content/settings/settings"; import type { APIRoute } from "astro"; import minifyXML from "minify-xml"; @@ -13,9 +14,25 @@ export const GET = (async () => { ]; if (settings.blog.enabled) { + const blogLastModifieds = [ + settings.blog.lastModified, + settings.sitemap.lastModified, + settings.website.lastModified + ]; + + let blogs = await getAllBlogs(settings); + + blogs.forEach((blog) => { + blogLastModifieds.push(blog.lastModified); + }); + + const lastModifiedBlogs = blogLastModifieds.sort((a: Date, b: Date) => { + return b.getTime() - a.getTime(); + }); + sitemapIndex.push({ url: "/sitemap/blogs.xml", - lastModified: new Date() + lastModified: lastModifiedBlogs[0] }); }; if (settings.project.enabled) {