📦 plugin-sitemap
此插件會為您的網站建立網站地圖,以便搜尋引擎爬蟲可以更準確地爬取您的網站。
僅限生產環境
此插件在開發環境中始終處於非活動狀態,並且僅在生產環境中處於活動狀態,因為它作用於建置輸出。
安裝
- npm
- Yarn
- pnpm
npm install --save @docusaurus/plugin-sitemap
yarn add @docusaurus/plugin-sitemap
pnpm 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
找到您的網站地圖。