Skip to content

Overview

Showdown allows you to load additional functionality via extensions. You can find a list of known Showdown extensions here.

You can also check the boilerplate repo, to create your own extension(s).

Usage

An extension can be loaded in two ways:

  • By name — first register it globally with showdown.extension(), then reference that name.
  • Inline — pass the extension object (or function) directly, with no prior registration.
var showdown = require('showdown');
var myExtension = require('./my-extension');

// Inline: pass the extension object directly
var converter = new showdown.Converter({ extensions: [myExtension] });

// By name: register it first, then reference it
showdown.extension('myext', myExtension);
var converter2 = new showdown.Converter({ extensions: ['myext'] });
<script src="dist/showdown.js"></script>
<script src="my-extension.js"></script>
<script>
  // my-extension.js registered itself via showdown.extension('myext', ...)
  var converter = new showdown.Converter({ extensions: ['myext'] });
</script>

In the CLI tool, use the -e flag to load an extension from a file path.

showdown makehtml -e ./my-extension.js -i foo.md -o bar.html