Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: bump sitemap.js to v5 #100

Open
wants to merge 1 commit into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 3 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -257,11 +257,9 @@ Set the XML namespaces by override all default `xmlns` attributes in `<urlset>`
}
```

### `xslUrl` (optional) - string

- Default: `undefined`
### `xslUrl`

The URL path of the XSL file to style the sitemap.
No longer supported as of sitemap.js v5

### `trailingSlash` (optional) - boolean

Expand Down Expand Up @@ -372,9 +370,7 @@ Set the XML namespaces by override all default `xmlns` attributes in `<sitemapin

### `xslUrl` (optional) - string

- Default: `undefined`

The URL path of the XSL file to style the sitemap index.
No longer supported as of sitemap.js v5

## Routes Declaration

Expand Down
6 changes: 0 additions & 6 deletions lib/builder.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,6 @@ function createSitemap(options, routes, base = null, req = null) {
// Set XML namespaces
sitemapConfig.xmlNs = options.xmlNs

// Set XSL url
sitemapConfig.xslUrl = options.xslUrl

// Set default values to each route
routes = routes.map(route => ({ ...options.defaults, ...route }))

Expand Down Expand Up @@ -95,9 +92,6 @@ function createSitemapIndex(options, base = null, req = null) {
// Set XML namespaces
sitemapIndexConfig.xmlNs = options.xmlNs

// Set XSL url
sitemapIndexConfig.xslUrl = options.xslUrl

// Create a sitemapindex
return sm.buildSitemapIndex(sitemapIndexConfig)
}
Expand Down
4 changes: 1 addition & 3 deletions lib/options.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ function setDefaultSitemapOptions(options, nuxtInstance) {
filter: undefined,
gzip: false,
xmlNs: undefined,
xslUrl: undefined,
trailingSlash: false,
defaults: {}
}
Expand Down Expand Up @@ -59,8 +58,7 @@ function setDefaultSitemapIndexOptions(options) {
hostname: undefined,
sitemaps: [],
gzip: false,
xmlNs: undefined,
xslUrl: undefined
xmlNs: undefined
}

const sitemapIndexOptions = {
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@nuxtjs/sitemap",
"version": "2.0.1",
"version": "3.0.1",
"description": "Automatically generate or serve dynamic sitemap.xml for Nuxt.js projects",
"keywords": [
"nuxt",
Expand Down Expand Up @@ -55,7 +55,7 @@
"is-https": "^1.0.0",
"lodash.unionby": "^4.8.0",
"minimatch": "^3.0.4",
"sitemap": "^4.1.1"
"sitemap": "^5.1.0"
},
"devDependencies": {
"@commitlint/cli": "latest",
Expand Down
14 changes: 7 additions & 7 deletions test/__snapshots__/module.test.js.snap
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`sitemap - advanced configuration external options custom base from router.base 1`] = `"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?><urlset xmlns=\\"http://www.sitemaps.org/schemas/sitemap/0.9\\" xmlns:news=\\"http://www.google.com/schemas/sitemap-news/0.9\\" xmlns:xhtml=\\"http://www.w3.org/1999/xhtml\\" xmlns:mobile=\\"http://www.google.com/schemas/sitemap-mobile/1.0\\" xmlns:image=\\"http://www.google.com/schemas/sitemap-image/1.1\\" xmlns:video=\\"http://www.google.com/schemas/sitemap-video/1.1\\"><url><loc>https://example.com/base/child</loc></url><url><loc>https://example.com/base/exclude</loc></url><url><loc>https://example.com/base/filtered</loc></url><url><loc>https://example.com/base/parent/child/subchild</loc></url><url><loc>https://example.com/base/parent/child</loc></url><url><loc>https://example.com/base/parent</loc></url><url><loc>https://example.com/base/sub</loc></url><url><loc>https://example.com/base/sub/sub</loc></url><url><loc>https://example.com/base/</loc></url></urlset>"`;
exports[`sitemap - advanced configuration external options custom base from router.base 1`] = `"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?><urlset xmlns=\\"http://www.sitemaps.org/schemas/sitemap/0.9\\" xmlns:news=\\"http://www.google.com/schemas/sitemap-news/0.9\\" xmlns:xhtml=\\"http://www.w3.org/1999/xhtml\\" xmlns:image=\\"http://www.google.com/schemas/sitemap-image/1.1\\" xmlns:video=\\"http://www.google.com/schemas/sitemap-video/1.1\\"><url><loc>https://example.com/base/child</loc></url><url><loc>https://example.com/base/exclude</loc></url><url><loc>https://example.com/base/filtered</loc></url><url><loc>https://example.com/base/parent/child/subchild</loc></url><url><loc>https://example.com/base/parent/child</loc></url><url><loc>https://example.com/base/parent</loc></url><url><loc>https://example.com/base/sub</loc></url><url><loc>https://example.com/base/sub/sub</loc></url><url><loc>https://example.com/base/</loc></url></urlset>"`;

exports[`sitemap - generate mode sitemap.xml 1`] = `"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?><urlset xmlns=\\"http://www.sitemaps.org/schemas/sitemap/0.9\\" xmlns:news=\\"http://www.google.com/schemas/sitemap-news/0.9\\" xmlns:xhtml=\\"http://www.w3.org/1999/xhtml\\" xmlns:mobile=\\"http://www.google.com/schemas/sitemap-mobile/1.0\\" xmlns:image=\\"http://www.google.com/schemas/sitemap-image/1.1\\" xmlns:video=\\"http://www.google.com/schemas/sitemap-video/1.1\\"><url><loc>https://example.com/child</loc></url><url><loc>https://example.com/filtered</loc></url><url><loc>https://example.com/parent/child/subchild</loc></url><url><loc>https://example.com/parent/child</loc></url><url><loc>https://example.com/parent</loc></url><url><loc>https://example.com/sub</loc></url><url><loc>https://example.com/sub/sub</loc></url><url><loc>https://example.com/</loc></url></urlset>"`;
exports[`sitemap - generate mode sitemap.xml 1`] = `"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?><urlset xmlns=\\"http://www.sitemaps.org/schemas/sitemap/0.9\\" xmlns:news=\\"http://www.google.com/schemas/sitemap-news/0.9\\" xmlns:xhtml=\\"http://www.w3.org/1999/xhtml\\" xmlns:image=\\"http://www.google.com/schemas/sitemap-image/1.1\\" xmlns:video=\\"http://www.google.com/schemas/sitemap-video/1.1\\"><url><loc>https://example.com/child</loc></url><url><loc>https://example.com/filtered</loc></url><url><loc>https://example.com/parent/child/subchild</loc></url><url><loc>https://example.com/parent/child</loc></url><url><loc>https://example.com/parent</loc></url><url><loc>https://example.com/sub</loc></url><url><loc>https://example.com/sub/sub</loc></url><url><loc>https://example.com/</loc></url></urlset>"`;

exports[`sitemap - minimal configuration sitemap.xml 1`] = `"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?><urlset xmlns=\\"http://www.sitemaps.org/schemas/sitemap/0.9\\" xmlns:news=\\"http://www.google.com/schemas/sitemap-news/0.9\\" xmlns:xhtml=\\"http://www.w3.org/1999/xhtml\\" xmlns:mobile=\\"http://www.google.com/schemas/sitemap-mobile/1.0\\" xmlns:image=\\"http://www.google.com/schemas/sitemap-image/1.1\\" xmlns:video=\\"http://www.google.com/schemas/sitemap-video/1.1\\"><url><loc>https://example.com/child</loc></url><url><loc>https://example.com/exclude</loc></url><url><loc>https://example.com/filtered</loc></url><url><loc>https://example.com/parent/child/subchild</loc></url><url><loc>https://example.com/parent/child</loc></url><url><loc>https://example.com/parent</loc></url><url><loc>https://example.com/sub</loc></url><url><loc>https://example.com/sub/sub</loc></url><url><loc>https://example.com/</loc></url></urlset>"`;
exports[`sitemap - minimal configuration sitemap.xml 1`] = `"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?><urlset xmlns=\\"http://www.sitemaps.org/schemas/sitemap/0.9\\" xmlns:news=\\"http://www.google.com/schemas/sitemap-news/0.9\\" xmlns:xhtml=\\"http://www.w3.org/1999/xhtml\\" xmlns:image=\\"http://www.google.com/schemas/sitemap-image/1.1\\" xmlns:video=\\"http://www.google.com/schemas/sitemap-video/1.1\\"><url><loc>https://example.com/child</loc></url><url><loc>https://example.com/exclude</loc></url><url><loc>https://example.com/filtered</loc></url><url><loc>https://example.com/parent/child/subchild</loc></url><url><loc>https://example.com/parent/child</loc></url><url><loc>https://example.com/parent</loc></url><url><loc>https://example.com/sub</loc></url><url><loc>https://example.com/sub/sub</loc></url><url><loc>https://example.com/</loc></url></urlset>"`;

exports[`sitemap - multiple configuration sitemap-bar.xml 1`] = `"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?><urlset xmlns=\\"http://www.sitemaps.org/schemas/sitemap/0.9\\" xmlns:news=\\"http://www.google.com/schemas/sitemap-news/0.9\\" xmlns:xhtml=\\"http://www.w3.org/1999/xhtml\\" xmlns:mobile=\\"http://www.google.com/schemas/sitemap-mobile/1.0\\" xmlns:image=\\"http://www.google.com/schemas/sitemap-image/1.1\\" xmlns:video=\\"http://www.google.com/schemas/sitemap-video/1.1\\"><url><loc>https://example.org/child</loc></url><url><loc>https://example.org/exclude</loc></url><url><loc>https://example.org/filtered</loc></url><url><loc>https://example.org/parent/child/subchild</loc></url><url><loc>https://example.org/parent/child</loc></url><url><loc>https://example.org/parent</loc></url><url><loc>https://example.org/sub</loc></url><url><loc>https://example.org/sub/sub</loc></url><url><loc>https://example.org/</loc></url></urlset>"`;
exports[`sitemap - multiple configuration sitemap-bar.xml 1`] = `"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?><urlset xmlns=\\"http://www.sitemaps.org/schemas/sitemap/0.9\\" xmlns:news=\\"http://www.google.com/schemas/sitemap-news/0.9\\" xmlns:xhtml=\\"http://www.w3.org/1999/xhtml\\" xmlns:image=\\"http://www.google.com/schemas/sitemap-image/1.1\\" xmlns:video=\\"http://www.google.com/schemas/sitemap-video/1.1\\"><url><loc>https://example.org/child</loc></url><url><loc>https://example.org/exclude</loc></url><url><loc>https://example.org/filtered</loc></url><url><loc>https://example.org/parent/child/subchild</loc></url><url><loc>https://example.org/parent/child</loc></url><url><loc>https://example.org/parent</loc></url><url><loc>https://example.org/sub</loc></url><url><loc>https://example.org/sub/sub</loc></url><url><loc>https://example.org/</loc></url></urlset>"`;

exports[`sitemap - multiple configuration sitemap-foo.xml 1`] = `"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?><urlset xmlns=\\"http://www.sitemaps.org/schemas/sitemap/0.9\\" xmlns:news=\\"http://www.google.com/schemas/sitemap-news/0.9\\" xmlns:xhtml=\\"http://www.w3.org/1999/xhtml\\" xmlns:mobile=\\"http://www.google.com/schemas/sitemap-mobile/1.0\\" xmlns:image=\\"http://www.google.com/schemas/sitemap-image/1.1\\" xmlns:video=\\"http://www.google.com/schemas/sitemap-video/1.1\\"><url><loc>https://example.com/child</loc></url><url><loc>https://example.com/exclude</loc></url><url><loc>https://example.com/filtered</loc></url><url><loc>https://example.com/parent/child/subchild</loc></url><url><loc>https://example.com/parent/child</loc></url><url><loc>https://example.com/parent</loc></url><url><loc>https://example.com/sub</loc></url><url><loc>https://example.com/sub/sub</loc></url><url><loc>https://example.com/</loc></url></urlset>"`;
exports[`sitemap - multiple configuration sitemap-foo.xml 1`] = `"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?><urlset xmlns=\\"http://www.sitemaps.org/schemas/sitemap/0.9\\" xmlns:news=\\"http://www.google.com/schemas/sitemap-news/0.9\\" xmlns:xhtml=\\"http://www.w3.org/1999/xhtml\\" xmlns:image=\\"http://www.google.com/schemas/sitemap-image/1.1\\" xmlns:video=\\"http://www.google.com/schemas/sitemap-video/1.1\\"><url><loc>https://example.com/child</loc></url><url><loc>https://example.com/exclude</loc></url><url><loc>https://example.com/filtered</loc></url><url><loc>https://example.com/parent/child/subchild</loc></url><url><loc>https://example.com/parent/child</loc></url><url><loc>https://example.com/parent</loc></url><url><loc>https://example.com/sub</loc></url><url><loc>https://example.com/sub/sub</loc></url><url><loc>https://example.com/</loc></url></urlset>"`;

exports[`sitemapindex - generate mode sitemap-bar.xml 1`] = `"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?><urlset xmlns=\\"http://www.sitemaps.org/schemas/sitemap/0.9\\" xmlns:news=\\"http://www.google.com/schemas/sitemap-news/0.9\\" xmlns:xhtml=\\"http://www.w3.org/1999/xhtml\\" xmlns:mobile=\\"http://www.google.com/schemas/sitemap-mobile/1.0\\" xmlns:image=\\"http://www.google.com/schemas/sitemap-image/1.1\\" xmlns:video=\\"http://www.google.com/schemas/sitemap-video/1.1\\"><url><loc>https://example.fr/bar/1</loc></url><url><loc>https://example.fr/bar/2</loc></url><url><loc>https://example.fr/child</loc></url><url><loc>https://example.fr/exclude</loc></url><url><loc>https://example.fr/filtered</loc></url><url><loc>https://example.fr/parent/child/subchild</loc></url><url><loc>https://example.fr/parent/child</loc></url><url><loc>https://example.fr/parent</loc></url><url><loc>https://example.fr/sub</loc></url><url><loc>https://example.fr/sub/sub</loc></url><url><loc>https://example.fr/</loc></url></urlset>"`;
exports[`sitemapindex - generate mode sitemap-bar.xml 1`] = `"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?><urlset xmlns=\\"http://www.sitemaps.org/schemas/sitemap/0.9\\" xmlns:news=\\"http://www.google.com/schemas/sitemap-news/0.9\\" xmlns:xhtml=\\"http://www.w3.org/1999/xhtml\\" xmlns:image=\\"http://www.google.com/schemas/sitemap-image/1.1\\" xmlns:video=\\"http://www.google.com/schemas/sitemap-video/1.1\\"><url><loc>https://example.fr/bar/1</loc></url><url><loc>https://example.fr/bar/2</loc></url><url><loc>https://example.fr/child</loc></url><url><loc>https://example.fr/exclude</loc></url><url><loc>https://example.fr/filtered</loc></url><url><loc>https://example.fr/parent/child/subchild</loc></url><url><loc>https://example.fr/parent/child</loc></url><url><loc>https://example.fr/parent</loc></url><url><loc>https://example.fr/sub</loc></url><url><loc>https://example.fr/sub/sub</loc></url><url><loc>https://example.fr/</loc></url></urlset>"`;

exports[`sitemapindex - generate mode sitemap-foo.xml 1`] = `"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?><urlset xmlns=\\"http://www.sitemaps.org/schemas/sitemap/0.9\\" xmlns:news=\\"http://www.google.com/schemas/sitemap-news/0.9\\" xmlns:xhtml=\\"http://www.w3.org/1999/xhtml\\" xmlns:mobile=\\"http://www.google.com/schemas/sitemap-mobile/1.0\\" xmlns:image=\\"http://www.google.com/schemas/sitemap-image/1.1\\" xmlns:video=\\"http://www.google.com/schemas/sitemap-video/1.1\\"><url><loc>https://example.com/foo/1</loc></url><url><loc>https://example.com/foo/2</loc></url><url><loc>https://example.com/child</loc></url><url><loc>https://example.com/exclude</loc></url><url><loc>https://example.com/filtered</loc></url><url><loc>https://example.com/parent/child/subchild</loc></url><url><loc>https://example.com/parent/child</loc></url><url><loc>https://example.com/parent</loc></url><url><loc>https://example.com/sub</loc></url><url><loc>https://example.com/sub/sub</loc></url><url><loc>https://example.com/</loc></url></urlset>"`;
exports[`sitemapindex - generate mode sitemap-foo.xml 1`] = `"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?><urlset xmlns=\\"http://www.sitemaps.org/schemas/sitemap/0.9\\" xmlns:news=\\"http://www.google.com/schemas/sitemap-news/0.9\\" xmlns:xhtml=\\"http://www.w3.org/1999/xhtml\\" xmlns:image=\\"http://www.google.com/schemas/sitemap-image/1.1\\" xmlns:video=\\"http://www.google.com/schemas/sitemap-video/1.1\\"><url><loc>https://example.com/foo/1</loc></url><url><loc>https://example.com/foo/2</loc></url><url><loc>https://example.com/child</loc></url><url><loc>https://example.com/exclude</loc></url><url><loc>https://example.com/filtered</loc></url><url><loc>https://example.com/parent/child/subchild</loc></url><url><loc>https://example.com/parent/child</loc></url><url><loc>https://example.com/parent</loc></url><url><loc>https://example.com/sub</loc></url><url><loc>https://example.com/sub/sub</loc></url><url><loc>https://example.com/</loc></url></urlset>"`;

exports[`sitemapindex - generate mode sitemapindex.xml 1`] = `"<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?><sitemapindex xmlns=\\"http://www.sitemaps.org/schemas/sitemap/0.9\\"><sitemap><loc>https://example.com/sitemap-foo.xml</loc></sitemap><sitemap><loc>https://example.fr/sitemap-bar.xml</loc></sitemap></sitemapindex>"`;
1 change: 0 additions & 1 deletion test/fixture/nuxt.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ module.exports = {
routes: ['1/', 'child/1', { url: 'test' }],
filter: ({ routes }) => routes.filter(route => route.url !== '/filtered/'),
xmlNs: 'xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"',
// xslUrl: 'sitemap.xsl',
trailingSlash: true,
defaults: {
changefreq: 'daily',
Expand Down
30 changes: 18 additions & 12 deletions test/module.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -105,14 +105,27 @@ describe('sitemap - advanced configuration', () => {
path: '/custom-sitemap.xml',
hostname: 'https://example.com/',
exclude: ['/exclude'],
routes: ['1/', 'child/1', { url: 'test/' }, { route: '/payload/1', payload: { id: 1 } }],
routes: [
'1/',
'child/1',
{ url: 'test/' },
{ route: '/payload/1', payload: { id: 1 } },
{
url: `imgtest`,
img: [
{
url: 'https://example.com',
caption: 'foo <>&\'" bar'
}
]
}
],
filter: ({ routes }) => routes.filter(route => route.url !== '/filtered'),
defaults: {
changefreq: 'daily',
priority: 1
},
xmlNs: 'xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"',
xslUrl: 'sitemap.xsl',
gzip: false,
cacheTime: 0
}
Expand Down Expand Up @@ -143,6 +156,8 @@ describe('sitemap - advanced configuration', () => {
expect(xml).toContain('<loc>https://example.com/child/1</loc>')
expect(xml).toContain('<loc>https://example.com/1/</loc>')
expect(xml).toContain('<loc>https://example.com/test/</loc>')
expect(xml).toContain('https://example.com/imgtest')
expect(xml).not.toContain('![CDATA')
})

test('excluded routes', () => {
Expand All @@ -165,10 +180,6 @@ describe('sitemap - advanced configuration', () => {
test('custom XML namespaces', () => {
expect(xml).toContain('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">')
})

test('custom XSL', () => {
expect(xml).toContain('<?xml-stylesheet type="text/xsl" href="sitemap.xsl"?>')
})
})

describe('custom options', () => {
Expand Down Expand Up @@ -356,8 +367,7 @@ describe('sitemapindex - advanced configuration', () => {
],
gzip: true,
lastmod,
xmlNs: 'xmlns="https://example.com/schemas/sitemap/0.9"',
xslUrl: 'sitemapindex.xsl'
xmlNs: 'xmlns="https://example.com/schemas/sitemap/0.9"'
}
})

Expand All @@ -383,10 +393,6 @@ describe('sitemapindex - advanced configuration', () => {
expect(xml).toContain('<sitemapindex xmlns="https://example.com/schemas/sitemap/0.9">')
})

test('custom XSL', () => {
expect(xml).toContain('<?xml-stylesheet type="text/xsl" href="sitemapindex.xsl"?>')
})

afterAll(async () => {
await nuxt.close()
})
Expand Down
Loading