A plugin to generating a XML sitemap.
npm install --save @uttori/plugin-generator-sitemap
{
// Registration Events
events: {
callback: ['document-save', 'document-delete'],
validateConfig: ['validate-config'],
},
[SitemapGenerator.configKey]: {
...
}
}
- SitemapGenerator
Uttori Sitemap Generator
Generates a valid sitemap.xml file for submitting to search engines.
- debug() :
function
- SitemapGeneratorConfig :
object
Uttori Sitemap Generator
Generates a valid sitemap.xml file for submitting to search engines.
Kind: global class
The configuration key for plugin to look for in the provided configuration.
Kind: static property of SitemapGenerator
Returns: string
- The configuration key.
Example (SitemapGenerator.configKey)
const config = { ...SitemapGenerator.defaultConfig(), ...context.config[SitemapGenerator.configKey] };
SitemapGenerator.defaultConfig() ⇒ SitemapGeneratorConfig
The default configuration.
Kind: static method of SitemapGenerator
Returns: SitemapGeneratorConfig
- The configuration.
Example (SitemapGenerator.defaultConfig())
const config = { ...SitemapGenerator.defaultConfig(), ...context.config[SitemapGenerator.configKey] };
Validates the provided configuration for required entries.
Kind: static method of SitemapGenerator
Param | Type | Description |
---|---|---|
config | object |
A configuration object. |
config.configKey | SitemapGeneratorConfig |
A configuration object specifically for this plugin. |
[_context] | object |
A Uttori-like context (unused). |
Example (SitemapGenerator.validateConfig(config, _context))
SitemapGenerator.validateConfig({ ... });
Register the plugin with a provided set of events on a provided Hook system.
Kind: static method of SitemapGenerator
Param | Type | Description |
---|---|---|
context | object |
A Uttori-like context. |
context.hooks | object |
An event system / hook system to use. |
context.hooks.on | function |
An event registration function. |
context.config | object |
A provided configuration to use. |
context.config.events | object |
An object whose keys correspong to methods, and contents are events to listen for. |
Example (SitemapGenerator.register(context))
const context = {
hooks: {
on: (event, callback) => { ... },
},
config: {
[SitemapGenerator.configKey]: {
...,
events: {
callback: ['document-save', 'document-delete'],
validateConfig: ['validate-config'],
},
},
},
};
SitemapGenerator.register(context);
Wrapper function for calling generating and writing the sitemap file.
Kind: static method of SitemapGenerator
Returns: Promise
- The provided document.
Param | Type | Description |
---|---|---|
_document | object |
A Uttori document (unused). |
context | object |
A Uttori-like context. |
context.config | object |
A provided configuration to use. |
context.config.configKey | SitemapGeneratorConfig |
A configuration object specifically for this plugin. |
context.hooks | object |
An event system / hook system to use. |
context.hooks.on | function |
An event registration function. |
context.hooks.fetch | function |
An event dispatch function that returns an array of results. |
Example (SitemapGenerator.callback(_document, context))
const context = {
config: {
[SitemapGenerator.configKey]: {
...,
},
},
hooks: {
on: (event) => { ... }
},
};
SitemapGenerator.callback(null, context);
Generates a sitemap from the provided context.
Kind: static method of SitemapGenerator
Returns: Promise
- The generated sitemap.
Param | Type | Description |
---|---|---|
context | object |
A Uttori-like context. |
context.config | object |
A provided configuration to use. |
context.config.configKey | SitemapGeneratorConfig |
A configuration object specifically for this plugin. |
context.config.events | object |
An object whose keys correspong to methods, and contents are events to listen for. |
context.hooks | object |
An event system / hook system to use. |
context.hooks.on | function |
An event registration function. |
context.hooks.fetch | function |
An event dispatch function that returns an array of results. |
Example (SitemapGenerator.callback(_document, context))
const context = {
config: {
[SitemapGenerator.configKey]: {
...,
},
},
hooks: {
on: (event) => { ... },
fetch: (event, query) => { ... },
},
};
SitemapGenerator.generateSitemap(context);
Kind: global typedef
Properties
Name | Type | Default | Description |
---|---|---|---|
urls | Array.<object> |
A collection of Uttori documents. | |
[url_filters] | Array.<RegExp> |
A collection of Regular Expression URL filters to exclude documents. | |
base_url | string |
The base URL (ie https://domain.tld) for all documents. | |
directory | string |
The path to the location you want the sitemap file to be written to. | |
[filename] | string |
"'sitemap'" |
The file name to use for the generated file. |
[extension] | string |
"'xml'" |
The file extension to use for the generated file. |
[page_priority] | string |
"'0.08'" |
Sitemap default page priority. |
[xml_header] | string |
Sitemap XML Header, standard XML sitemap header is the default. | |
[xml_footer] | string |
Sitemap XML Footer, standard XML sitemap closing tag is the default. |
To run the test suite, first install the dependencies, then run npm test
:
npm install
npm test
DEBUG=Uttori* npm test