Get unlimited public & private packages + package-based permissions with npm Pro.Get started »

uttori-plugin-generator-sitemap

2.0.2 • Public • Published

view on npm npm module downloads Build Status Dependency Status Coverage Status

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

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() ⇒ Object

The default configuration.

Kind: static method of SitemapGenerator
Returns: Object - 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[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.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) ⇒ Object

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: {
    [SitemapGenerator.configKey]: {
      ...,
    },
  },
  storageProvider: {
    getQuery: (query) => { ... }
  },
};
SitemapGenerator.callback(null, context);

SitemapGenerator.generateSitemap(_document, context) ⇒ String

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: {
    [SitemapGenerator.configKey]: {
      ...,
    },
  },
  storageProvider: {
    getQuery: (query) => { ... }
  },
};
SitemapGenerator.generateSitemap(context);

Tests

To run the test suite, first install the dependencies, then run npm test:

npm install
npm test
DEBUG=Uttori* npm test

Contributors

License

Install

npm i uttori-plugin-generator-sitemap

DownloadsWeekly Downloads

0

Version

2.0.2

License

MIT

Unpacked Size

25.7 kB

Total Files

5

Last publish

Collaborators

  • avatar