@uttori/plugin-generator-sitemap
v4.0.0
Published
A plugin to generate an XML sitemap for search engines.
Downloads
11
Maintainers
Readme
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