CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-showdown

A Markdown to HTML converter written in Javascript

Pending
Overview
Eval results
Files

core-conversion.mddocs/

Core Conversion

Core conversion functionality for transforming between Markdown and HTML formats using the showdown.Converter class.

Capabilities

Converter Constructor

Creates a new Converter instance with optional configuration.

/**
 * Creates a new Showdown Converter instance
 * @param converterOptions - Optional configuration object
 * @returns New Converter instance
 */
new showdown.Converter(converterOptions?: ConverterOptions): Converter

Usage Examples:

// Default converter
const converter = new showdown.Converter();

// Converter with options
const converter = new showdown.Converter({
  tables: true,
  strikethrough: true,
  ghCodeBlocks: true,
  tasklists: true
});

// Converter with extensions
const converter = new showdown.Converter({
  extensions: ['my-extension']
});

makeHtml

Converts Markdown text to HTML.

/**
 * Converts a markdown string into HTML
 * @param text - Markdown text to convert
 * @returns HTML string
 */
converter.makeHtml(text: string): string

Usage Examples:

const converter = new showdown.Converter();

// Basic conversion
const html = converter.makeHtml('# Hello World');
console.log(html); // <h1 id="helloworld">Hello World</h1>

// Complex markdown
const markdown = `
# Title

This is **bold** and *italic* text.

- List item 1
- List item 2

\`\`\`javascript
console.log('Hello');
\`\`\`
`;

const html = converter.makeHtml(markdown);

makeMarkdown

Converts HTML back to Markdown format.

/**
 * Converts HTML into Markdown
 * @param src - HTML string to convert  
 * @param HTMLParser - Optional HTML parser to use
 * @returns Markdown string
 */
converter.makeMarkdown(src: string, HTMLParser?: any): string

Usage Examples:

const converter = new showdown.Converter();

// Basic HTML to Markdown
const markdown = converter.makeMarkdown('<h1>Hello World</h1>');
console.log(markdown); // # Hello World

// Complex HTML
const html = `
<h1>Title</h1>
<p>This is <strong>bold</strong> and <em>italic</em> text.</p>
<ul>
<li>List item 1</li>
<li>List item 2</li>
</ul>
`;

const markdown = converter.makeMarkdown(html);

makeMd

Alias for makeMarkdown method.

/**
 * Alias for makeMarkdown - converts HTML into Markdown
 * @param src - HTML string to convert
 * @param HTMLParser - Optional HTML parser to use
 * @returns Markdown string
 */
converter.makeMd(src: string, HTMLParser?: any): string

Usage Examples:

const converter = new showdown.Converter();

// Same functionality as makeMarkdown
const markdown = converter.makeMd('<p><strong>Bold text</strong></p>');
console.log(markdown); // **Bold text**

Error Handling

The conversion methods handle various edge cases:

const converter = new showdown.Converter();

// Empty or falsy input returns the input as-is
console.log(converter.makeHtml('')); // ''
console.log(converter.makeHtml(null)); // null
console.log(converter.makeHtml(undefined)); // undefined

// Invalid HTML for makeMarkdown may produce unexpected results
// Always validate input when converting user-provided HTML

Performance Considerations

  • Converter instances can be reused for multiple conversions
  • Creating multiple converters with the same options is inefficient
  • Large documents may benefit from chunking or streaming approaches
  • Extensions can significantly impact conversion performance

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