@astrojs/starlight
Version:
Build beautiful, high-performance documentation websites with Astro
24 lines (21 loc) • 710 B
text/typescript
import sitemap, { type SitemapOptions } from '@astrojs/sitemap';
import type { StarlightConfig } from '../types';
export function getSitemapConfig(opts: StarlightConfig): SitemapOptions {
const sitemapConfig: SitemapOptions = {};
if (opts.isMultilingual) {
sitemapConfig.i18n = {
defaultLocale: opts.defaultLocale.locale || 'root',
locales: Object.fromEntries(
Object.entries(opts.locales).map(([locale, config]) => [locale, config?.lang!])
),
};
}
return sitemapConfig;
}
/**
* A wrapped version of the `@astrojs/sitemap` integration configured based
* on Starlight i18n config.
*/
export function starlightSitemap(opts: StarlightConfig) {
return sitemap(getSitemapConfig(opts));
}