showdown

A bidirectional Markdown-to-HTML and HTML-to-Markdown converter for JavaScript, usable in Node or the browser.

Library
npm
v2.1.0
14,868 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
91 /100 Excellent
Development Activity 96
Maintenance 84
Community 84
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
78 /100 Good
Architecture 80
Code Quality 82
Innovation 58
Learning Curve 90

Showdown is a JavaScript library that converts Markdown into HTML and can also run the conversion in reverse, turning HTML back into Markdown. It works both server-side under Node.js and client-side in the browser, with no required dependency on any particular framework. The converter is built around a flavor system (vanilla, github/GFM, commonmark, original) that toggles preset bundles of options, so a project can opt into GitHub-flavored Markdown behaviors like tables, task lists, strikethrough, and auto-linking without hand-configuring each one.

Beyond the core makeHtml/makeMarkdown API, Showdown ships a documented extension system (lang, output, and listener-style extensions), an event bus for hooking into stages of the parse pipeline, and a bundled CLI (showdown makehtml / showdown makemarkdown) for converting files from the command line. It has been a stable dependency in the Node ecosystem for well over a decade, with a large user base including projects like Ghost’s markdown handling.

What You Get

  • A Converter class exposing makeHtml(markdown) and makeMarkdown(html) for bidirectional conversion
  • Flavor presets (vanilla, github/gfm, commonmark, original) that bundle common option combinations
  • GitHub-flavored Markdown extras: tables, task lists, strikethrough, fenced code blocks, GFM mentions, and simplified autolinking
  • An extension system (listener, lang, and output extensions) plus an event bus for hooking into the parse pipeline
  • A bundled CLI (showdown makehtml / showdown makemarkdown) for converting files or stdin without writing any JS
  • Configurable option system (setOption/getOption/setFlavor) at both the global and per-instance level

Common Use Cases

  • Rendering user-authored Markdown (comments, docs, README previews) to HTML in a Node backend or in-browser editor
  • Building a live Markdown preview pane that re-renders HTML as the user types
  • Converting existing HTML content into Markdown for migration into a Markdown-based CMS or static site generator
  • Enabling GitHub-flavored Markdown features like task lists and tables in an internal tool without building a parser from scratch
  • Batch-converting a directory of Markdown files to HTML (or vice versa) from the command line via the bundled CLI

Under The Hood

Architecture Showdown’s core is src/converter.js, which builds a per-instance Converter by merging global and local options (src/options.js) and running text through an ordered pipeline of subparsers under src/subParsers/makehtml/ for Markdown-to-HTML, or walking a DOM (produced via helper.parseHTML) through the makeMarkdown.node dispatcher in src/subParsers/makemarkdown/ for the reverse direction. src/showdown.js defines the shared static namespace — global options, the subparser/extension registries, and the flavor presets (vanilla/gfm/commonmark/original) that are just bundles of option overrides layered onto the same pipeline. Each pipeline stage emits onStart/onPreParse/onEnd-style events through src/event.js, and extensions (in lang, output, or listener form) hook into that event bus rather than patching the pipeline directly, which keeps the core conversion path linear and inspectable even as third-party behavior is added. src/helpers/ factors out shared low-level concerns — HTML block hashing, entity/escape handling, regex tables — used by multiple subparsers, and src/cli/cli.js is a thin wrapper around the same public Converter API rather than a separate code path.

Used by 8 apps in this directory

TypeScript
100%
Other

Activepieces

AI Assistants · Automation · Mcp

24,756

Open-source AI automation platform that converts 280+ workflow integrations into MCP servers for LLMs, with no-code builders and TypeScript extensibility.

View details
92
Repo Health
85
Technical
64
Dependency
Built with
TypeScript 100%
Updated 4 days ago
TypeScript
68%
Apache 2.0

Appsmith

Automation · Developer Tools · No Code Platforms

40,959

Open-source low-code platform to build admin panels, dashboards, and internal tools connected to any database or API.

View details
93
Repo Health
79
Technical
66
Dependency
Built with
TypeScript 68%
Java 21%
Updated 6 days ago
JavaScript
100%
Other

Automatisch

Automation · No Code Platforms

13,979

Self-hosted, no-code workflow automation that keeps your data on your own servers—a privacy-first alternative to Zapier with 90+ integrations.

View details
49
Repo Health
78
Technical
62
Dependency
Built with
JavaScript 100%
Updated 7 months ago
TypeScript
62%
Other

Flowise

AI Development · Automation · Developer Tools

55,490

Drag-and-drop visual builder for AI agents, RAG pipelines, and multi-agent systems—deploy anywhere in minutes.

View details
82
Repo Health
77
Technical
63
Dependency
Built with
TypeScript 62%
JavaScript 27%
Updated 1 months ago
Python
58%
Apache 2.0

MLflow

AI Development · Monitoring

28,154

The open source AI engineering platform for debugging, evaluating, monitoring, and optimizing production LLMs and agents at scale.

View details
97
Repo Health
86
Technical
66
Dependency
Built with
Python 58%
TypeScript 33%
Updated 4 days ago
TypeScript
92%
Other

n8n

Automation · No Code Platforms

206,147

Code when you need it, UI when you don't — the workflow automation platform built for technical teams who refuse to choose.

View details
95
Repo Health
87
Technical
65
Dependency
Built with
TypeScript 92%
Updated 4 days ago
JavaScript
26%
AGPL 3.0

Omnivore

Bookmarks Archiving · Knowledge Management · Note Taking

16,265

Self-hosted read-it-later platform with highlights, newsletters, PDFs, and seamless Obsidian and Logseq integration.

View details
90
Repo Health
74
Technical
65
Dependency
Built with
JavaScript 26%
TypeScript 25%
HTML 19%
Updated 5 days ago
JavaScript
86%
AGPL 3.0

SillyTavern

AI Assistants

33,853

The power-user LLM frontend that unifies dozens of AI backends with a rich scripting engine, immersive Visual Novel mode, and a thriving extension ecosystem.

View details
91
Repo Health
71
Technical
67
Dependency
Built with
JavaScript 86%
Updated 1 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers