steamdown icon indicating copy to clipboard operation
steamdown copied to clipboard

Convert Markdown to Steam's text format

steamdown

npm npm CI codecov

Converts Markdown to Steam's markup.

Usage

Website

Go to http://steamdown.vercel.app/

Library

import parse from 'steamdown';

console.log(parse(text));

CLI

# read from STDIN
steamdown -
# or
steamdown < file.md

# read from file
steamdown file.md

Differences from Markdown

View the input spec and output spec for an example.

Images

Images are not supported. They render to links. For example, ![example](/image.png) becomes [url=/image.png]example[/url].

Underlines ([u])

Wrapping text with __ does not make it bold, but makes it underlined (__underlined text__).

Spoiler Text ([spoiler])

Wrapping text with !!! makes it spoiler text (!!!hidden text!!!).

Quote Authors

Quotes can have authors by adding (author) after text preceded with a >. For this reason, continuing a quote on a newline without preceding each line with a > is considered undocumented behavior.

Example

>this is some text that I'm
>responding to.
(some person)

Literal Text ([noparse])

Steam's [noparse] tag instructs Steam to render text like [b]this[/b] literally, without styling. In addition to rendering a [noparse] block, steamdown's literal text rule will also prevent parsing of the source text. For example, *this* would not be converted to [i]this[/i].

Inline

Text can be made literal by wrapping it with {{{ and }}} ({{{[b]The bold tag is rendered[/b]}}}).

Block Level

Any lines between {{{ and }}} will be rendered without any parsing.

Example
{{{
[b] is bold
[u] is underline
}}}

Limitations

Steam supports tables with no borders ([table noborder=1]) and equal-width cells ([table equalcells=1]). These are not currently supported. Syntax proposals welcome!