From da234251c4938092252882423c1bfb5fd9abfd39 Mon Sep 17 00:00:00 2001 From: Reece Dunham Date: Thu, 16 Apr 2020 14:52:22 +0000 Subject: [PATCH 1/3] fix(v2): don't include 404 page in sitemaps Signed-off-by: Reece Dunham --- .../src/__tests__/createSitemap.test.ts | 17 ++++++++++++++++- .../src/createSitemap.ts | 12 ++++++++++-- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/packages/docusaurus-plugin-sitemap/src/__tests__/createSitemap.test.ts b/packages/docusaurus-plugin-sitemap/src/__tests__/createSitemap.test.ts index fb29688d3297..472c83d4d738 100644 --- a/packages/docusaurus-plugin-sitemap/src/__tests__/createSitemap.test.ts +++ b/packages/docusaurus-plugin-sitemap/src/__tests__/createSitemap.test.ts @@ -30,7 +30,22 @@ describe('createSitemap', () => { expect(() => { createSitemap({} as any, [], {} as any); }).toThrowErrorMatchingInlineSnapshot( - `"Url in docusaurus.config.js cannot be empty/undefined"`, + `"url in docusaurus.config.js cannot be empty/undefined"`, ); }); + + test('exclusion of 404 page', () => { + const sitemap = createSitemap( + { + url: 'https://example.com', + } as DocusaurusConfig, + ['/', '/404', '/mypage'], + { + cacheTime: 600, + changefreq: 'daily', + priority: 0.7, + }, + ); + expect(sitemap.toString()).not.toContain('404'); + }); }); diff --git a/packages/docusaurus-plugin-sitemap/src/createSitemap.ts b/packages/docusaurus-plugin-sitemap/src/createSitemap.ts index 4f817dbf9c20..fe539419fb5c 100644 --- a/packages/docusaurus-plugin-sitemap/src/createSitemap.ts +++ b/packages/docusaurus-plugin-sitemap/src/createSitemap.ts @@ -16,10 +16,18 @@ export default function createSitemap( ) { const {url: hostname} = siteConfig; if (!hostname) { - throw new Error('Url in docusaurus.config.js cannot be empty/undefined'); + throw new Error('url in docusaurus.config.js cannot be empty/undefined'); } - const urls = routesPaths.map( + let finalizedRoutesPaths: string[] = []; + // filter through routes to exclude the 404 page + routesPaths.forEach((route: string) => { + if (route.indexOf('404') === -1) { + finalizedRoutesPaths.push(route); + } + }); + + const urls = finalizedRoutesPaths.map( (routesPath) => ({ url: routesPath, From d933bb63463ed7240aa2ab88e392658aedd1d394 Mon Sep 17 00:00:00 2001 From: Reece Dunham Date: Fri, 17 Apr 2020 13:17:50 +0000 Subject: [PATCH 2/3] fix: improve implementation as requested Signed-off-by: Reece Dunham --- .../src/__tests__/createSitemap.test.ts | 2 +- .../src/createSitemap.ts | 26 +++++++------------ 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/packages/docusaurus-plugin-sitemap/src/__tests__/createSitemap.test.ts b/packages/docusaurus-plugin-sitemap/src/__tests__/createSitemap.test.ts index 472c83d4d738..8f75ac8fad7f 100644 --- a/packages/docusaurus-plugin-sitemap/src/__tests__/createSitemap.test.ts +++ b/packages/docusaurus-plugin-sitemap/src/__tests__/createSitemap.test.ts @@ -39,7 +39,7 @@ describe('createSitemap', () => { { url: 'https://example.com', } as DocusaurusConfig, - ['/', '/404', '/mypage'], + ['/', '/404.html', '/mypage'], { cacheTime: 600, changefreq: 'daily', diff --git a/packages/docusaurus-plugin-sitemap/src/createSitemap.ts b/packages/docusaurus-plugin-sitemap/src/createSitemap.ts index fe539419fb5c..a9f0fcb7c82f 100644 --- a/packages/docusaurus-plugin-sitemap/src/createSitemap.ts +++ b/packages/docusaurus-plugin-sitemap/src/createSitemap.ts @@ -19,22 +19,16 @@ export default function createSitemap( throw new Error('url in docusaurus.config.js cannot be empty/undefined'); } - let finalizedRoutesPaths: string[] = []; - // filter through routes to exclude the 404 page - routesPaths.forEach((route: string) => { - if (route.indexOf('404') === -1) { - finalizedRoutesPaths.push(route); - } - }); - - const urls = finalizedRoutesPaths.map( - (routesPath) => - ({ - url: routesPath, - changefreq: options.changefreq, - priority: options.priority, - } as SitemapItemOptions), - ); + const urls = routesPaths + .filter((route: string) => route !== '/404.html') + .map( + (routesPath) => + ({ + url: routesPath, + changefreq: options.changefreq, + priority: options.priority, + } as SitemapItemOptions), + ); return sitemap.createSitemap({ hostname, From 974167c8c3c516f6f4ac1dea29702f70ff92724a Mon Sep 17 00:00:00 2001 From: Reece Dunham Date: Fri, 17 Apr 2020 15:15:32 -0400 Subject: [PATCH 3/3] Fix issue with baseUrls --- packages/docusaurus-plugin-sitemap/src/createSitemap.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/docusaurus-plugin-sitemap/src/createSitemap.ts b/packages/docusaurus-plugin-sitemap/src/createSitemap.ts index a9f0fcb7c82f..3d22bb6ea9d4 100644 --- a/packages/docusaurus-plugin-sitemap/src/createSitemap.ts +++ b/packages/docusaurus-plugin-sitemap/src/createSitemap.ts @@ -20,7 +20,7 @@ export default function createSitemap( } const urls = routesPaths - .filter((route: string) => route !== '/404.html') + .filter((route: string) => !route.endsWith('404.html')) .map( (routesPath) => ({