mirror of
https://github.com/walkxcode/dashboard-icons.git
synced 2025-06-28 15:30:22 +08:00
feat: Update sitemap logic
This commit is contained in:
parent
d83edeedce
commit
dc50e08440
@ -1,36 +1,44 @@
|
|||||||
import { BASE_URL, WEB_URL } from "@/constants"
|
import { BASE_URL, WEB_URL } from "@/constants";
|
||||||
import { getAllIcons } from "@/lib/api"
|
import { getAllIcons } from "@/lib/api";
|
||||||
import type { MetadataRoute } from "next"
|
import type { MetadataRoute } from "next";
|
||||||
|
|
||||||
export const dynamic = "force-static"
|
export const dynamic = "force-static";
|
||||||
|
|
||||||
|
// Helper function to format dates as YYYY-MM-DD
|
||||||
|
const formatDate = (date: Date): string => {
|
||||||
|
// Format to YYYY-MM-DD
|
||||||
|
return date.toISOString().split('T')[0];
|
||||||
|
};
|
||||||
|
|
||||||
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
|
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
|
||||||
const iconsData = await getAllIcons()
|
const iconsData = await getAllIcons();
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
url: WEB_URL,
|
url: WEB_URL,
|
||||||
lastModified: new Date(),
|
lastModified: formatDate(new Date()),
|
||||||
changeFrequency: "yearly",
|
changeFrequency: "yearly",
|
||||||
priority: 1,
|
priority: 1,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
url: `${WEB_URL}/icons`,
|
url: `${WEB_URL}/icons`,
|
||||||
lastModified: new Date(),
|
lastModified: formatDate(new Date()),
|
||||||
changeFrequency: "daily",
|
changeFrequency: "daily",
|
||||||
priority: 1,
|
priority: 1,
|
||||||
images: [`${WEB_URL}/icons/icon.png`],
|
images: [`${WEB_URL}/icons/icon.png`],
|
||||||
},
|
},
|
||||||
...Object.keys(iconsData).map((iconName) => ({
|
...Object.keys(iconsData).map((iconName) => ({
|
||||||
url: `${WEB_URL}/icons/${iconName}`,
|
url: `${WEB_URL}/icons/${iconName}`,
|
||||||
lastModified: iconsData[iconName].update.timestamp,
|
lastModified: formatDate(new Date(iconsData[iconName].update.timestamp)),
|
||||||
changeFrequency: "yearly" as const,
|
changeFrequency: "yearly" as const,
|
||||||
priority: 0.8,
|
priority: 0.8,
|
||||||
images: [
|
images: [
|
||||||
`${BASE_URL}/png/${iconName}.png`,
|
`${BASE_URL}/png/${iconName}.png`,
|
||||||
// SVG is conditional if it exists
|
// SVG is conditional if it exists
|
||||||
iconsData[iconName].base === "svg" ? `${BASE_URL}/svg/${iconName}.svg` : null,
|
iconsData[iconName].base === "svg"
|
||||||
|
? `${BASE_URL}/svg/${iconName}.svg`
|
||||||
|
: null,
|
||||||
`${BASE_URL}/webp/${iconName}.webp`,
|
`${BASE_URL}/webp/${iconName}.webp`,
|
||||||
].filter(Boolean) as string[],
|
].filter(Boolean) as string[],
|
||||||
})),
|
})),
|
||||||
]
|
];
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user