diff --git a/packages/adapters/astro/src/preset.mts b/packages/adapters/astro/src/preset.mts index 0b2d0e05..a2a6e4a5 100644 --- a/packages/adapters/astro/src/preset.mts +++ b/packages/adapters/astro/src/preset.mts @@ -3,14 +3,47 @@ import partytown from '@astrojs/partytown'; import prefetch from '@astrojs/prefetch'; import react from '@astrojs/react'; import sitemap from '@astrojs/sitemap'; +import { getConfig, getDefaultLanguage, getLanguages } from '@galactiks/config'; import critters from 'astro-critters'; import robotsTxt from 'astro-robots-txt'; +import { getPageByURL } from '@galactiks/explorer'; + +const defaultLocale = getDefaultLanguage(); export const integrationsPreset = (): AstroIntegration[] => [ react(), partytown(), prefetch(), - sitemap(), + sitemap({ + i18n: defaultLocale ? { + defaultLocale, + locales: Object.fromEntries(getLanguages().map(lang => ([lang, lang]))) + } : undefined, + serialize: async (item) => { + const page = await getPageByURL(item.url); + if (!page) { + return item; + } + + // console.log(page.dateModified.toUTCString()); + // console.log(page.datePublished.toISOString()); + + return ({ + url: page.url, + // lastmod: page.dateModified.toUTCString(), + news: { + publication: { + name: getConfig().webManifest.name, + language: getDefaultLanguage(), + }, + + // publication_date: page.datePublished.toISOString(), + title: page.name, + keywords: page.keywords?.join(', '), + }, + }); + } + }), robotsTxt(), critters(), ];