CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-showdown

A Markdown to HTML converter written in Javascript

Pending
Overview
Eval results
Files

global-configuration.mddocs/

Global Configuration

Global configuration methods for managing options that affect all Showdown instances unless overridden locally.

Capabilities

setOption

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): showdown

Usage 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();

getOption

Gets the value of a global option.

/**
 * Get a global option value
 * @param key - Option name
 * @returns Option value
 */
showdown.getOption(key: string): any

Usage 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);
}

getOptions

Gets all global options as an object.

/**
 * Get all global options
 * @returns Object containing all global options
 */
showdown.getOptions(): ConverterOptions

Usage 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);

resetOptions

Resets all global options to their default values.

/**
 * Reset global options to default values
 */
showdown.resetOptions(): void

Usage 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)

getDefaultOptions

Gets the default options configuration.

/**
 * Get the default options
 * @param simple - If true, returns simplified format
 * @returns Default options object
 */
showdown.getDefaultOptions(simple?: boolean): ConverterOptions

Usage 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 vs Local Options

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')); // true

Option Validation

Showdown 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

docs

cli.md

core-conversion.md

event-system.md

extension-system.md

flavor-management.md

global-configuration.md

index.md

instance-configuration.md

tile.json