uttori-plugin-renderer-markdown-it

Uttori plugin for rendering Markdown powered by MarkdownIt.

Usage no npm install needed!

<script type="module">
  import uttoriPluginRendererMarkdownIt from 'https://cdn.skypack.dev/uttori-plugin-renderer-markdown-it';
</script>

README

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

Uttori Renderer - Markdown - MarkdownIt

Uttori renderer support for Markdown powered by MarkdownIt.

Install

npm install --save uttori-plugin-renderer-markdown-it

Config

{
  // Registration Events
  events: {
    renderContent: [],
    renderCollection: [],
    validateConfig: [],
  },
  // MarkdownIt Configuration
  ...,
}

The only supported configuration outside of registration events is passing in MarkdownIt config.


API Reference

MarkdownItRenderer

Uttori MarkdownIt Renderer

Kind: global class

MarkdownItRenderer.configKey ⇒ String

The configuration key for plugin to look for in the provided configuration.

Kind: static property of MarkdownItRenderer
Returns: String - The configuration key.
Example (MarkdownItRenderer.configKey)

const config = { ...MarkdownItRenderer.defaultConfig(), ...context.config[MarkdownItRenderer.configKey] };

MarkdownItRenderer.defaultConfig() ⇒ Object

The default configuration.

Kind: static method of MarkdownItRenderer
Returns: Object - The configuration.
Example (MarkdownItRenderer.defaultConfig())

const config = { ...MarkdownItRenderer.defaultConfig(), ...context.config[MarkdownItRenderer.configKey] };

MarkdownItRenderer.validateConfig(config)

Validates the provided configuration for required entries.

Kind: static method of MarkdownItRenderer

Param Type Description
config Object A configuration object.
config[MarkdownItRenderer.configKey Object A configuration object specifically for this plugin.

Example (MarkdownItRenderer.validateConfig(config, _context))

MarkdownItRenderer.validateConfig({ ... });

MarkdownItRenderer.register(context)

Register the plugin with a provided set of events on a provided Hook system.

Kind: static method of MarkdownItRenderer

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 (MarkdownItRenderer.register(context))

const context = {
  hooks: {
    on: (event, callback) => { ... },
  },
  config: {
    [MarkdownItRenderer.configKey]: {
      ...,
      events: {
        renderContent: ['render-content', 'render-meta-description'],
        renderCollection: ['render-search-results'],
        validateConfig: ['validate-config'],
      },
    },
  },
};
MarkdownItRenderer.register(context);

MarkdownItRenderer.renderContent(content, context) ⇒ String

Renders Markdown for a provided string with a provided context.

Kind: static method of MarkdownItRenderer
Returns: String - The rendered content.

Param Type Description
content String Markdown content to be converted to HTML.
context Object A Uttori-like context.
context.config Object A provided configuration to use.

Example (MarkdownItRenderer.renderContent(content, context))

const context = {
  config: {
    [MarkdownItRenderer.configKey]: {
      ...,
    },
  },
};
MarkdownItRenderer.renderContent(content, context);

MarkdownItRenderer.renderCollection(collection, context) ⇒ Array.<Object>

Renders Markdown for a collection of Uttori documents with a provided context.

Kind: static method of MarkdownItRenderer
Returns: Array.<Object> - } The rendered documents.

Param Type Description
collection Array.<Object> A collection of Uttori documents.
context Object A Uttori-like context.
context.config Object A provided configuration to use.

Example (MarkdownItRenderer.renderCollection(collection, context))

const context = {
  config: {
    [MarkdownItRenderer.configKey]: {
      ...,
    },
  },
};
MarkdownItRenderer.renderCollection(collection, context);

MarkdownItRenderer.render(content, config) ⇒ String

Renders Markdown for a provided string with a provided MarkdownIt configuration.

Kind: static method of MarkdownItRenderer
Returns: String - The rendered content.

Param Type Description
content String Markdown content to be converted to HTML.
config Object A provided MarkdownIt configuration to use.

Example (MarkdownItRenderer.render(content, config))

const html = MarkdownItRenderer.render(content, config);

Tests

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

npm install
npm test
DEBUG=Uttori* npm test

Contributors

License