GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — aicodingstack.io/src/app/sitemap.ts at main · aicodingstack/aicodingstack.io Expand file tree/ Copy pathsitemap.tsMore file actions 124 lines (107 loc) · 4.02 KB / Copy pathsitemap.tsFile metadata and controls124 lines (107 loc) · 4.02 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 import type { MetadataRoute } from 'next' import { locales } from '@/i18n/config' import { clisData, desktopsData, extensionsData, idesData, modelsData, providersData, vendorsData, } from '@/lib/generated' import { articles } from '@/lib/generated/articles' import { docSections } from '@/lib/generated/docs' import { METADATA_CATEGORIES, SITE_CONFIG } from '@/lib/metadata/config' import { getCategoryRoutePath } from '@/lib/metadata/helpers' type ManifestItem = { id: string [key: string]: unknown } function getLocalizedUrl(baseUrl: string, path: string, locale: string): string { const localizedPath = path === '/' ? '' : path if (locale === 'en') { return `${baseUrl}${localizedPath}` } return `${baseUrl}/${locale}${localizedPath}` } function generateLocalizedPages( baseUrl: string, path: string, options: Pick<MetadataRoute.Sitemap[0], 'lastModified'> = {} ): MetadataRoute.Sitemap { return locales.map(locale => ({ url: getLocalizedUrl(baseUrl, path, locale), ...options, })) } export default function sitemap(): MetadataRoute.Sitemap { const baseUrl = SITE_CONFIG.url const categoryPaths = METADATA_CATEGORIES.map(category => `/${getCategoryRoutePath(category)}`) // Static pages - generate for all locales const staticPaths = [ '/', ...categoryPaths, '/ai-coding-stack', '/curated-collections', '/manifesto', '/ai-coding-landscape', '/open-source-rank', '/model-intelligence-index', '/model-price-intelligence-index', '/ides/comparison', '/clis/comparison', '/desktops/comparison', '/extensions/comparison', '/models/compare', ] const staticPages: MetadataRoute.Sitemap = staticPaths.flatMap(path => generateLocalizedPages(baseUrl, path) ) // Article pages - generate for all locales const articlePages: MetadataRoute.Sitemap = articles.flatMap(article => generateLocalizedPages(baseUrl, `/articles/${article.slug}`, { lastModified: new Date(article.date), }) ) // Doc pages - generate for all locales const docPages: MetadataRoute.Sitemap = docSections.flatMap(doc => generateLocalizedPages(baseUrl, `/docs/${doc.slug}`) ) // IDE detail pages - generate for all locales const ideDetailPages: MetadataRoute.Sitemap = (idesData as unknown as ManifestItem[]) .filter(ide => ide.id) .flatMap(ide => generateLocalizedPages(baseUrl, `/ides/${ide.id}`)) // CLI detail pages - generate for all locales const cliDetailPages: MetadataRoute.Sitemap = (clisData as unknown as ManifestItem[]) .filter(cli => cli.id) .flatMap(cli => generateLocalizedPages(baseUrl, `/clis/${cli.id}`)) const desktopDetailPages: MetadataRoute.Sitemap = (desktopsData as unknown as ManifestItem[]) .filter(desktop => desktop.id) .flatMap(desktop => generateLocalizedPages(baseUrl, `/desktops/${desktop.id}`)) // Model detail pages - generate for all locales const modelDetailPages: MetadataRoute.Sitemap = (modelsData as unknown as ManifestItem[]) .filter(model => model.id) .flatMap(model => generateLocalizedPages(baseUrl, `/models/${model.id}`)) // Provider detail pages - generate for all locales const providerDetailPages: MetadataRoute.Sitemap = (providersData as unknown as ManifestItem[]) .filter(provider => provider.id) .flatMap(provider => generateLocalizedPages(baseUrl, `/model-providers/${provider.id}`)) const extensionDetailPages: MetadataRoute.Sitemap = (extensionsData as unknown as ManifestItem[]) .filter(extension => extension.id) .flatMap(extension => generateLocalizedPages(baseUrl, `/extensions/${extension.id}`)) const vendorDetailPages: MetadataRoute.Sitemap = (vendorsData as unknown as ManifestItem[]) .filter(vendor => vendor.id) .flatMap(vendor => generateLocalizedPages(baseUrl, `/vendors/${vendor.id}`)) return [ ...staticPages, ...articlePages, ...docPages, ...ideDetailPages, ...cliDetailPages, ...desktopDetailPages, ...modelDetailPages, ...providerDetailPages, ...extensionDetailPages, ...vendorDetailPages, ] } |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |