跳到主要内容

📦 plugin-sitemap

该插件会为你的站点生成 sitemap(站点地图),帮助搜索引擎爬虫更准确地抓取你的站点内容。

仅生产环境生效

本插件在开发环境下始终不启用,仅在生产环境下生效,因为它依赖构建产物。

安装

npm install --save @docusaurus/plugin-sitemap
提示

如果你使用了 @docusaurus/preset-classic 预设,无需单独安装此插件。

你可以通过预设选项配置此插件。

配置

可用字段:

名称类型默认值说明
lastmod'date' | 'datetime' | nullnulldate 表示 YYYY-MM-DD,datetime 为 ISO 8601 格式,null 表示不输出。详见 sitemap 文档
changefreqstring | null'weekly'详见 sitemap 文档
prioritynumber | null0.5详见 sitemap 文档
ignorePatternsstring[][]需要从 sitemap 过滤的路由路径 glob 模式列表。注意可能需要包含 base URL。
filenamestringsitemap.xml生成的 sitemap 文件路径(相对于输出目录)。如有多个插件实例输出多个文件时很有用。
createSitemapItemsCreateSitemapItemsFn | undefinedundefined可选函数,用于自定义 sitemap 条目的过滤和转换。

类型定义

CreateSitemapItemsFn

type CreateSitemapItemsFn = (params: {
siteConfig: DocusaurusConfig;
routes: RouteConfig[];
defaultCreateSitemapItems: CreateSitemapItemsFn;
}) => Promise<SitemapItem[]>;
信息

本插件还会读取部分站点配置:

关于 lastmod

只有当插件为路由提供了 route metadatasourceFilePath 和/或 lastUpdatedAt 属性时,lastmod 选项才会输出 <lastmod> 标签。

所有官方内容插件都会为基于内容文件(Markdown、MDX 或 React 组件)的路由提供元数据,但第三方插件可能不会,导致无法为其路由输出 <lastmod> 标签。

示例配置

你可以通过预设选项或插件选项配置本插件。

提示

大多数道格龙用户通过预设选项配置此插件。

// 预设选项:sitemap
// 插件选项:@docusaurus/plugin-sitemap

const config = {
lastmod: 'date',
changefreq: 'weekly',
priority: 0.5,
ignorePatterns: ['/tags/**'],
filename: 'sitemap.xml',
createSitemapItems: async (params) => {
const {defaultCreateSitemapItems, ...rest} = params;
const items = await defaultCreateSitemapItems(rest);
return items.filter((item) => !item.url.includes('/page/'));
},
};

你可以在 /sitemap.xml 找到你的 sitemap。