A Markdown to HTML converter written in Javascript
—
Global configuration methods for managing options that affect all Showdown instances unless overridden locally.
Sets a global option that affects all new Converter instances.
/**
* Set a global option
* @param key - Option name
* @param value - Option value
* @returns showdown object for chaining
*/
showdown.setOption(key: string, value: any): showdownUsage Examples:
// Enable strikethrough globally
showdown.setOption('strikethrough', true);
// Set header prefix globally
showdown.setOption('prefixHeaderId', 'section-');
// All new converters will inherit these settings
const converter1 = new showdown.Converter();
const converter2 = new showdown.Converter();Gets the value of a global option.
/**
* Get a global option value
* @param key - Option name
* @returns Option value
*/
showdown.getOption(key: string): anyUsage Examples:
// Set and get an option
showdown.setOption('tables', true);
const tablesEnabled = showdown.getOption('tables');
console.log(tablesEnabled); // true
// Check if an option is set
const headerIdPrefix = showdown.getOption('prefixHeaderId');
if (headerIdPrefix) {
console.log('Header IDs will be prefixed with:', headerIdPrefix);
}Gets all global options as an object.
/**
* Get all global options
* @returns Object containing all global options
*/
showdown.getOptions(): ConverterOptionsUsage Examples:
// Get all current global options
const globalOptions = showdown.getOptions();
console.log(globalOptions);
// Check multiple options
const options = showdown.getOptions();
if (options.tables && options.strikethrough) {
console.log('Both tables and strikethrough are enabled');
}
// Create converter with modified global options
const customOptions = { ...showdown.getOptions(), emoji: true };
const converter = new showdown.Converter(customOptions);Resets all global options to their default values.
/**
* Reset global options to default values
*/
showdown.resetOptions(): voidUsage Examples:
// Set some global options
showdown.setOption('tables', true);
showdown.setOption('strikethrough', true);
showdown.setOption('emoji', true);
// Reset to defaults
showdown.resetOptions();
// All options are now back to default values
const options = showdown.getOptions();
console.log(options.tables); // false (default)
console.log(options.strikethrough); // false (default)Gets the default options configuration.
/**
* Get the default options
* @param simple - If true, returns simplified format
* @returns Default options object
*/
showdown.getDefaultOptions(simple?: boolean): ConverterOptionsUsage Examples:
// Get default options in detailed format
const defaultOptions = showdown.getDefaultOptions();
console.log(defaultOptions);
// Get default options in simple format
const simpleDefaults = showdown.getDefaultOptions(true);
console.log(simpleDefaults);
// Compare current options with defaults
const currentOptions = showdown.getOptions();
const defaults = showdown.getDefaultOptions(true);
Object.keys(defaults).forEach(key => {
if (currentOptions[key] !== defaults[key]) {
console.log(`${key} changed from ${defaults[key]} to ${currentOptions[key]}`);
}
});Global options serve as defaults for new Converter instances:
// Set global options
showdown.setOption('tables', true);
showdown.setOption('strikethrough', true);
// New converter inherits global options
const converter1 = new showdown.Converter();
console.log(converter1.getOption('tables')); // true
// But can be overridden locally
const converter2 = new showdown.Converter({ tables: false });
console.log(converter2.getOption('tables')); // false
// Global options unchanged
console.log(showdown.getOption('tables')); // trueShowdown performs basic validation on option values:
// Boolean options accept truthy/falsy values
showdown.setOption('tables', 1); // Treated as true
showdown.setOption('tables', ''); // Treated as false
// String options accept any value
showdown.setOption('prefixHeaderId', 'my-prefix-');
// Invalid option names are accepted but ignored
showdown.setOption('nonExistentOption', true);Install with Tessl CLI
npx tessl i tessl/npm-showdown