node package manager
Painless code sharing. npm Orgs help your team discover, share, and reuse code. Create a free org »



Tiny markdown renderer for Node and browser, with CLI.



npm i -S zeedown or yarn add zeedown


zeedown(text: string, short: ?bool)

zeedown takes two parameters: a required string and an optional truthy value to use short mode. In short mode:

  • Strong is a single set of asterisks
  • Emphasis is a single set of underscores
  • Strikethrough is a single set of tildes
  • No headers

This is essentially the same as Slack's basic Markdown.

import md from 'zeedown'
// or 
const md = require('zeedown')
md('some string', true)


zeedown comes with a small CLI. Usage:

cat | zeedown > foo.html

It takes an optional flag -s (or --short) to use short mode.

Supported Features

  • Strong (Bold)
  • Emphasis (Italic)
  • Deletions (Strikethrough)
  • Inline code
  • Fenced code blocks (not indent)
  • Blockquotes
  • Ordered/unordered lists
  • Headers

Why Not Feature X?

If you want links, images, syntax highlighting, and other fancy stuff, you're probably better off using a full-featured implementation. Try marked, it's super popular.


Everything specified works. ol, ul, and blockquote are a little funky (only work if not indented at all, need an extra pass to strip extra tags).


A quick little benchmark has inconsistent results but it seems okay. This was originally implemented as a class with a render method, but the benchmark usually shows the function performing significantly better. Which makes me happy, because I'm not overly fond of ES classes.