📦 plugin-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 表示禁用。请参阅 站点地图文档。 |
changefreq | string | null | 'weekly' | 请参阅 站点地图文档 |
priority | number | null | 0.5 | 请参阅 站点地图文档 |
ignorePatterns | string[] | [] | 一个 glob 模式列表;匹配的路由路径将从站点地图中过滤掉。请注意,你可能需要在此处包含基本 URL。 |
filename | string | sitemap.xml | 创建的站点地图文件路径,相对于输出目录。如果你有两个插件实例输出两个文件,这将很有用。 |
createSitemapItems | CreateSitemapItemsFn | undefined | undefined | 一个可选函数,可用于转换和/或过滤站点地图中的项目。 |
类型
CreateSitemapItemsFn
type CreateSitemapItemsFn = (params: {
siteConfig: DocusaurusConfig;
routes: RouteConfig[];
defaultCreateSitemapItems: CreateSitemapItemsFn;
}) => Promise<SitemapItem[]>;
信息
此插件还遵循一些网站配置
noIndex
:导致不生成站点地图trailingSlash
:决定站点地图中的 URL 是否带有斜杠
关于
lastmod
仅当插件提供 路由元数据 属性 sourceFilePath
和/或 lastUpdatedAt
时,lastmod
选项才会输出站点地图 <lastmod>
标签。
所有官方内容插件都会为由内容文件(Markdown、MDX 或 React 页面组件)支持的路由提供元数据,但第三方插件作者可能不会提供此信息,因此该插件将无法为其路由输出 <lastmod>
标签。
示例配置
您可以通过预设选项或插件选项配置此插件。
提示
大多数 Docusaurus 用户通过预设选项配置此插件。
- 预设选项
- 插件选项
如果您使用预设,请通过 预设选项配置此插件
docusaurus.config.js
module.exports = {
presets: [
[
'@docusaurus/preset-classic',
{
sitemap: {
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/'));
},
},
},
],
],
};
如果您使用的是独立插件,请直接向插件提供选项
docusaurus.config.js
module.exports = {
plugins: [
[
'@docusaurus/plugin-sitemap',
{
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
找到你的站点地图。