docusaurus/packages/docusaurus-plugin-sitemap/src/index.ts
ApsarasX 103ea04661
feat(sitemap): add ignorePatterns option (#6979)
Co-authored-by: Joshua Chen <sidachen2003@gmail.com>
2022-04-06 15:44:07 +02:00

43 lines
1.1 KiB
TypeScript

/**
* 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 type {PluginOptions} from '@docusaurus/plugin-sitemap';
import createSitemap from './createSitemap';
import type {LoadContext, Plugin} from '@docusaurus/types';
export default function pluginSitemap(
context: LoadContext,
options: PluginOptions,
): Plugin<void> {
return {
name: 'docusaurus-plugin-sitemap',
async postBuild({siteConfig, routesPaths, outDir}) {
if (siteConfig.noIndex) {
return;
}
// Generate sitemap.
const generatedSitemap = await createSitemap(
siteConfig,
routesPaths,
options,
);
// Write sitemap file.
const sitemapPath = path.join(outDir, 'sitemap.xml');
try {
await fs.outputFile(sitemapPath, generatedSitemap);
} catch (err) {
throw new Error(`Writing sitemap failed: ${err}`);
}
},
};
}
export {validateOptions} from './options';