📦 plugin-sitemap
该插件会为你的站点生成 sitemap(站点地图),帮助搜索引擎爬虫更准确地抓取你的站点内容。
仅生产环境生效
本插件在开发环境下始终不启用,仅在生产环境下生效,因为它依赖构建产物。
安装
- npm
- Yarn
- pnpm
- Bun
npm install --save @docusaurus/plugin-sitemap
yarn add @docusaurus/plugin-sitemap
pnpm add @docusaurus/plugin-sitemap
bun add @docusaurus/plugin-sitemap
提示
如果你使用了 @docusaurus/preset-classic
预设,无需单独安装此插件。
你可以通过预设选项配置此插件。
配置
可用字段:
名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
lastmod | 'date' | 'datetime' | null | null | date 表示 YYYY-MM-DD,datetime 为 ISO 8601 格式,null 表示不输出。详见 sitemap 文档。 |
changefreq | string | null | 'weekly' | 详见 sitemap 文档 |
priority | number | null | 0.5 | 详见 sitemap 文档 |
ignorePatterns | string[] | [] | 需要从 sitemap 过滤的路由路径 glob 模式列表。注意可能需要包含 base URL。 |
filename | string | sitemap.xml | 生成的 sitemap 文件路径(相对于输出目录)。如有多个插件实例输出多个文件时很有用。 |
createSitemapItems | CreateSitemapItemsFn | undefined | undefined | 可选函数,用于自定义 sitemap 条目的过滤和转换。 |
类型定义
CreateSitemapItemsFn
type CreateSitemapItemsFn = (params: {
siteConfig: DocusaurusConfig;
routes: RouteConfig[];
defaultCreateSitemapItems: CreateSitemapItemsFn;
}) => Promise<SitemapItem[]>;
信息
本插件还会读取部分站点配置:
noIndex
:设置后不会生成 sitemaptrailingSlash
:决定 sitemap 中 URL 是否带斜杠
关于
lastmod
只有当插件为路由提供了 route metadata 的 sourceFilePath
和/或 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。