@uttori/plugin-generator-sitemap

A plugin to generate an XML sitemap for search engines.

Usage no npm install needed!

<script type="module">
  import uttoriPluginGeneratorSitemap from 'https://cdn.skypack.dev/@uttori/plugin-generator-sitemap';
</script>

README

view on npm npm module downloads Build Status Dependency Status Coverage Status Tree-Shaking Support Dependency Count Minified + GZip Minified

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

SitemapGenerator

Uttori Sitemap Generator

Generates a valid sitemap.xml file for submitting to search engines.

Functions

debug() : function

Typedefs

SitemapGeneratorConfig : object

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

Contributors

License