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