
Showdown
A JavaScript library that converts Markdown to HTML and HTML back to Markdown.
- Stars
- 14.9k
- Forks
- 1.6k
- Licence
- MIT
- Language
- JavaScript
- Last update
- 8 days ago
- Type
- Library
What it is
Showdown is a JavaScript library that turns Markdown text (a simple plain-text formatting syntax) into HTML, and can also convert HTML back into Markdown. It runs in a web browser or on a server with Node.js. Developers use it to let people write formatted text in a simple syntax and display it as web pages.
- Render user-written Markdown comments or posts as HTML in a web app
- Convert a Markdown document to HTML on a Node.js server
- Convert HTML content back into Markdown
- Enable tables or automatic links through converter options
Great for
- JavaScript developers adding Markdown rendering to a web page
- Node.js developers converting Markdown files on a server
- Projects that need two-way conversion between HTML and Markdown
- Developers who want options such as tables, header ids, or image sizing
Not ideal for
- People who just want to write Markdown in a ready-made editor app, since this is a library, not an app
- Projects that need the exact GitHub rendering behavior, since the README mentions GitHub-style ids but does not claim full compatibility
- Anyone needing current browser support for very old browsers, since the README lists tested versions from decades ago without current testing details
How to get it
- 1
Install with a package manager
You'll need: Node.js (for server-side use)
Install via npm (server-side)
npm install showdown - 2
Run it
- Install the package with npm install showdown
- In Node.js, require showdown and create a new showdown.Converter()
- Call converter.makeHtml('# hello, markdown!') to get HTML output
- Check the output matches the README example: an h1 element with id hello-markdown
- 3
Get the most out of it
- Set options through the constructor, for example new showdown.Converter({tables: true}), to enable tables
- Use the headerIds option to control heading ids, including a prefix
- Enable simplifiedAutoLink to turn plain www. URLs into links
- Use parseImgDimensions to set image sizes from Markdown syntax
- Read the extended documentation on the project wiki for more examples
Downloads
Strengths
- Works both in the browser and on Node.js
- Options let you adjust output such as header ids, header levels, and links
- Released under the MIT license
Trade-offs
- The README is a long list of options and does not document every edge case, so you may need the wiki for detail
- The browser compatibility section lists very old browsers and gives no current test results
- Some features such as tables are off by default and must be turned on
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| showdown (this) | 14.9k | Library | beginner | 8 days ago | JavaScript developers adding Markdown rendering to a web page |
| markdown-it | 22k | Library | intermediate | 14 days ago | JavaScript or TypeScript developers who need to render Markdown in a Node.js or browser project |
| remark | 13k | Library | beginner | 2.4 years ago | People comfortable with HTML and CSS who want slides written in Markdown |
| turndown | 11.5k | Library | beginner | 19 days ago | Developers who need to convert HTML content, such as web pages or rich text editor output, into Markdown |
| tui.editor | 18k | Library | intermediate | 2.3 years ago | Web developers who want an embeddable Markdown editor in their own site or app |
| react-markdown | 15.9k | Library | beginner | 1 months ago | React developers who need to display Markdown content such as comments, docs, or posts |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.