/
githubmirror
/
docusaurus
Обзор
Документация
Войти
/
githubmirror
/
docusaurus
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
packages/docusaurus-plugin-sitemap/src/index.ts
59 строк
2 KB
Sébastien Lorber
feat(core): new `postBuild({routesBuildMetadata})` API, deprecate `head` attribute + v4 future flag (#10850)
17 янв 2025, 19:26
Не верифицирован
17 янв 2025, 19:26
9df5aae
Код
Авторство
О чём код?
/** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ import fs from 'fs-extra'; import path from 'path'; import logger from '@docusaurus/logger'; import createSitemap from './createSitemap'; import type {PluginOptions, Options} from './options'; import type {LoadContext, Plugin} from '@docusaurus/types'; const PluginName = 'docusaurus-plugin-sitemap'; export default function pluginSitemap( context: LoadContext, options: PluginOptions, ): Plugin<void> | null { if (context.siteConfig.future.experimental_router === 'hash') { logger.warn( `${PluginName} does not support the Hash Router and will be disabled.`, ); return null; } return { name: PluginName, async postBuild({siteConfig, routes, outDir, routesBuildMetadata}) { if (siteConfig.noIndex) { return; } // Generate sitemap. const generatedSitemap = await createSitemap({ siteConfig, routes, routesBuildMetadata, options, }); if (!generatedSitemap) { return; } // Write sitemap file. const sitemapPath = path.join(outDir, options.filename); try { await fs.outputFile(sitemapPath, generatedSitemap); } catch (err) { logger.error('Writing sitemap failed.'); throw err; } }, }; } export {validateOptions} from './options'; export type {PluginOptions, Options};