Uttori Sitemap Generator
A utility method for generating a XML sitemap.
Install
npm install --save uttori-plugin-generator-sitemap
Config
// Registration Events events: callback: 'document-save' 'document-delete' validateConfig: 'validate-config' // Sitemap URL (ie https://domain.tld) base_url: '' // Location where the XML sitemap will be written to. directory: '' // Sitemap URL Filter url_filters: // Sitemap XML Header xml_header: '<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">' // Sitemap XML Footer xml_footer: '</urlset>' // Sitemap Filename filename: 'sitemap' // Sitemap Fie Extension extension: 'xml' // Sitemap default page priority page_priority: '0.80' // Sitemap URLs, must be an array. urls:
API Reference
SitemapGenerator
Uttori Sitemap Generator
Kind: global class
- SitemapGenerator
- .configKey ⇒
String
- .defaultConfig() ⇒
Object
- .validateConfig(config, _context)
- .register(context)
- .callback(_document, context) ⇒
Object
- .generateSitemap(_document, context) ⇒
String
- .configKey ⇒
String
SitemapGenerator.configKey ⇒ 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 ...contextconfigSitemapGeneratorconfigKey ;
Object
SitemapGenerator.defaultConfig() ⇒ The default configuration.
Kind: static method of SitemapGenerator
Returns: Object
- The configuration.
Example (SitemapGenerator.defaultConfig())
const config = ...SitemapGenerator ...contextconfigSitemapGeneratorconfigKey ;
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[SitemapGenerator.configKey | Object |
A configuration object specifically for this plugin. |
config[SitemapGenerator.configKey].urls | Array.<Object> |
A collection of Uttori documents. |
config[SitemapGenerator.configKey].url_filters | Array.<RegExp> |
A collection of Regular Expression URL filters. |
config[SitemapGenerator.configKey].base_url | String |
The base URL (ie https://domain.tld) for all documents. |
config[SitemapGenerator.configKey].directory | String |
The path to the location you want the sitemap file to be writtent to. |
_context | Object |
A Uttori-like context (unused). |
Example (SitemapGenerator.validateConfig(config, _context))
SitemapGenerator;
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: { ... } config: SitemapGeneratorconfigKey: ... events: callback: 'document-save' 'document-delete' validateConfig: 'validate-config' ;SitemapGenerator;
Object
SitemapGenerator.callback(_document, context) ⇒ Wrapper function for calling generating and writing the sitemap file.
Kind: static method of SitemapGenerator
Returns: Object
- 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.directory | String |
The directory to write the sitemap to. |
context.config.filename | String |
The name to use for the generated file. |
context.config.extension | String |
The file extension to use for the generated file. |
context.storageProvider | Object |
A provided Uttori StorageProvider instance. |
context.storageProvider.getQuery | function |
Access method for getting documents. |
Example (SitemapGenerator.callback(_document, context))
const context = config: SitemapGeneratorconfigKey: ... storageProvider: { ... } ;SitemapGenerator;
String
SitemapGenerator.generateSitemap(_document, context) ⇒ Generates a sitemap from the provided context.
Kind: static method of SitemapGenerator
Returns: String
- The generated sitemap.
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.base_url | String |
The prefix for URLs in the sitemap. |
context.config.page_priority | Number |
The page_priority for pages. |
context.config.url_filters | Array.<RegExp> |
A collection of URL filters used to filter documents. |
context.config.urls | Array.<Object> |
Additional documents to add to the sitemap. |
context.config.urls[].slug | String |
The path for the current document. |
context.config.urls[].updateDate | String |
The timestamp of the last update for the current document. |
context.config.xml_footer | String |
The suffix for the sitemap. |
context.config.xml_header | String |
The prefix for the sitemap. |
context.storageProvider | Object |
A provided Uttori StorageProvider instance. |
context.storageProvider.getQuery | function |
Access method for getting documents. |
Example (SitemapGenerator.callback(_document, context))
const context = config: SitemapGeneratorconfigKey: ... storageProvider: { ... } ;SitemapGenerator;
Tests
To run the test suite, first install the dependencies, then run npm test
:
npm installnpm testDEBUG=Uttori* npm test