A straightforward sitemap generator written in TypeScript.
- Generates sitemaps with associated metadata for each URL
- Escapes problematic URLs and can append/remove trailing slashes
- Automatically splits large sitemaps (with 50,000+ URLs) and generates the associated index
npm i planisphere
const { writeSitemaps } = require('planisphere');
writeSitemaps('dist', [
'/',
'/about',
{
loc: '/blog',
priority: 0.9,
changefreq: 'weekly',
},
], {
baseUrl: 'https://example.com',
trailingSlash: false,
pretty: true,
})
.then(() => {
console.info('Successfully generated sitemap');
});
Returns an array of sitemaps contents.
Usually there will only be a single one, but if more than
50,000 URLs are provided, they will be split into several sitemaps
as requested by the protocol.
You should then pass the resulting array to generateSitemapsIndex()
.
An array of strings and/or objects with the following properties:
-
loc: string
: the URL (required) -
lastmod: Date | number | string
: a date string in the W3C format, a JavaScript timestamp string, a numeric timestamp or a Date object -
changefreq: SitemapUrlChangefreq
:'always'
,'hourly'
,'daily'
,'weekly'
,'monthly'
,'yearly'
or'never'
-
priority: number | string
: a multiple of0.1
between0.0
and1.0
(defaults to0.5
)
For more information on those meta tags, you can consult the official specification.
An object with the following properties (all optional):
-
defaults: { lastmod?, changefreq?, priority? }
: default values for the meta tags accompanying each URL -
baseUrl: string
: a base URL to prepend every URL with -
trailingSlash: boolean
:true
to append a trailing slash to every URL,false
to always remove it (if unspecified, will leave the URLs unchanged) -
pretty: boolean
:true
to pretty-print the outputted XML to be human-readable
Returns the contents of a sitemap index, or undefined
if there is one filename or less.
The filenames of the sitemap(s).
The last modification date of the sitemaps (defaults to the current timestamp).
Generates and write the sitemap(s) to the disk. Returns a Promise<void>
.
The path to the folder in which to write the generated file(s).
See the full changelog here.
Contributions are welcomed! Please open an issue before proposing any significant changes.
vue-cli-plugin-sitemap
– This module as a Vue CLI pluginsitempap.js
– Another sitemap generator (TypeScript)- www.sitemaps.org – Detailed description of the Sitemaps protocol
ISC