@uttori/plugin-generator-sitemap v4.0.0
Uttori Sitemap Generator
A plugin to generating a XML sitemap.
Install
npm install --save @uttori/plugin-generator-sitemap
Config
{
// Registration Events
events: {
callback: ['document-save', 'document-delete'],
validateConfig: ['validate-config'],
},
[SitemapGenerator.configKey]: {
...
}
}
API Reference
Classes
Functions
Typedefs
SitemapGenerator
Uttori Sitemap Generator
Generates a valid sitemap.xml file for submitting to search engines.
Kind: global class
SitemapGenerator.configKey ⇒ string
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] };
SitemapGenerator.validateConfig(config, _context)
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({ ... });
SitemapGenerator.register(context)
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);
SitemapGenerator.callback(_document, context) ⇒ Promise
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);
SitemapGenerator.generateSitemap(context) ⇒ Promise
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);
debug() : function
Kind: global function
SitemapGeneratorConfig : object
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. |
Tests
To run the test suite, first install the dependencies, then run npm test
:
npm install
npm test
DEBUG=Uttori* npm test