61 lines
1.6 KiB
TypeScript
61 lines
1.6 KiB
TypeScript
import { MetadataRoute } from 'next';
|
|
import { getProducts } from '@/content/products';
|
|
import { getPosts } from '@/content/posts';
|
|
import { dolnySlaskCities } from '@/content/cities';
|
|
export default function sitemap(): MetadataRoute.Sitemap {
|
|
const baseUrl = 'https://thermcool.pl';
|
|
|
|
// Statyczne trasy (Główne)
|
|
const staticRoutes = [
|
|
'',
|
|
'/klimatyzacja',
|
|
'/pompy-ciepla',
|
|
|
|
'/realizacje',
|
|
'/blog',
|
|
'/o-nas',
|
|
'/kontakt',
|
|
'/sklep',
|
|
'/koszyk',
|
|
'/porownaj',
|
|
'/regulamin',
|
|
'/polityka-prywatnosci',
|
|
'/reklamacje',
|
|
'/dostawa',
|
|
'/gwarancja',
|
|
].map((route) => ({
|
|
url: `${baseUrl}${route}`,
|
|
lastModified: new Date().toISOString(),
|
|
changeFrequency: 'weekly' as const,
|
|
priority: route === '' ? 1 : 0.8,
|
|
}));
|
|
|
|
// Dynamiczne produkty
|
|
const products = getProducts();
|
|
const productRoutes = products.map((product) => ({
|
|
url: `${baseUrl}/sklep/${product.slug}`,
|
|
lastModified: new Date().toISOString(),
|
|
changeFrequency: 'weekly' as const,
|
|
priority: 0.8,
|
|
}));
|
|
|
|
// Dynamiczne artykuły na blogu
|
|
const posts = getPosts();
|
|
const postRoutes = posts.map((post) => ({
|
|
url: `${baseUrl}/blog/${post.slug}`,
|
|
lastModified: post.date, // Używamy daty publikacji jako lastModified
|
|
changeFrequency: 'monthly' as const,
|
|
priority: 0.6,
|
|
}));
|
|
|
|
// Dynamiczne strony miast
|
|
const cityRoutes = dolnySlaskCities.map((city) => ({
|
|
url: `${baseUrl}/klimatyzacja/${city.slug}`,
|
|
lastModified: new Date().toISOString(),
|
|
changeFrequency: 'monthly' as const,
|
|
priority: 0.7,
|
|
}));
|
|
|
|
return [...staticRoutes, ...productRoutes, ...postRoutes, ...cityRoutes];
|
|
}
|