Markdown Input
Preview
This is a bold example and this is italic text.
You can also use inline code and links.
- List item 1
- List item 2
- List item 3
A split-pane editor: markdown source on the left, rendered preview on the right, updating on every keystroke. It implements a deliberate subset of CommonMark — enough for READMEs and notes — and knowing the exact boundaries saves you from wondering why a table refuses to render.
What renders, and what falls through to plain text
Supported: ATX headings from # through ###### (a line with seven or more hashes fails the heading pattern and renders as an ordinary paragraph), unordered lists, inline bold, italic, and bold-italic in both asterisk and underscore styles, nested emphasis like **bold *and italic* text**, inline code spans, and links — which open in a new tab with rel="noopener noreferrer" applied.
Not implemented: ordered lists, blockquotes, fenced code blocks, tables, horizontal rules, and images. List detection is also strict about its marker: only lines beginning with a dash and a space become bullets. Asterisk bullets (* item) and plus bullets render as paragraphs, and indented sublists lose their nesting because the leading spaces break the marker match — this parser handles flat lists only.
Underscores inside identifiers are safe
A common failure in lightweight markdown parsers is italicizing half of every snake_case identifier. This one requires a word boundary around underscore delimiters, so snake_case_var and file_name.txt pass through untouched while a standalone _emphasis_ still italicizes. Asterisk emphasis has no such restriction, which mirrors how CommonMark itself treats the two delimiters differently. If you write about code, prefer wrapping identifiers in backticks anyway — a code span's opening backtick sits before any emphasis marker inside it, so the code span wins the match and its contents come through untouched.
The word counter gives you length stats on the source text before you publish it, and the text diff tool is useful for comparing two revisions of the same document. For escaping markdown output destined for HTML attributes, see the HTML entities encoder.