Openstatus www.openstatus.dev
at 4c0f4c00a38753a5d0dfd7e7b7b7706dec6f1503 61 lines 1.8 kB view raw
1import { 2 getBlogPosts, 3 getChangelogPosts, 4 getComparePages, 5 getProductPages, 6 getToolsPages, 7 getUnrelatedPages, 8} from "@/content/utils"; 9import type { MetadataRoute } from "next"; 10 11const allPosts = getBlogPosts(); 12const allChangelogs = getChangelogPosts(); 13const allComparisons = getComparePages(); 14const allUnrelated = getUnrelatedPages().filter( 15 (page) => page.slug !== "not-found", 16); 17const allProducts = getProductPages(); 18const allPlaygrounds = getToolsPages().filter( 19 (tool) => tool.slug !== "checker-slug", 20); 21 22export default function sitemap(): MetadataRoute.Sitemap { 23 const blogs = allPosts.map((post) => ({ 24 url: `https://www.openstatus.dev/blog/${post.slug}`, 25 lastModified: post.metadata.publishedAt, // date format should be YYYY-MM-DD 26 })); 27 28 const changelogs = allChangelogs.map((post) => ({ 29 url: `https://www.openstatus.dev/changelog/${post.slug}`, 30 lastModified: post.metadata.publishedAt, // date format should be YYYY-MM-DD 31 })); 32 33 const comparisons = allComparisons.map((comparison) => ({ 34 url: `https://www.openstatus.dev/compare/${comparison.slug}`, 35 lastModified: comparison.metadata.publishedAt, 36 })); 37 38 const landings = allUnrelated.map((page) => ({ 39 url: `https://www.openstatus.dev/${page.slug}`, 40 lastModified: page.metadata.publishedAt, 41 })); 42 43 const products = allProducts.map((product) => ({ 44 url: `https://www.openstatus.dev/${product.slug}`, 45 lastModified: product.metadata.publishedAt, 46 })); 47 48 const playgrounds = allPlaygrounds.map((playground) => ({ 49 url: `https://www.openstatus.dev/play/${playground.slug}`, 50 lastModified: playground.metadata.publishedAt, 51 })); 52 53 return [ 54 ...blogs, 55 ...changelogs, 56 ...comparisons, 57 ...landings, 58 ...products, 59 ...playgrounds, 60 ]; 61}