What is Markdown?
Markdown explained: why it was created, how plain text becomes HTML, the core syntax, and where it is used today.
Markdown is a lightweight markup language created by John Gruber in 2004. The idea is simple: write plain text using a handful of punctuation conventions, and a processor converts it to clean HTML automatically. A hash at the start of a line becomes an <h1>, double asterisks become <strong>, and a hyphen list becomes <ul>.
The original design goal was that the raw source should be readable as-is — you should not need to mentally parse HTML tags to understand what a Markdown document says.
How it works
A Markdown processor reads your plain text and outputs HTML. Here is what that looks like in practice:
# Getting Started Write **bold** text, *italic*, or `inline code` anywhere. - Item one - Item two > A blockquote stands out. ```js const x = 42 ```
Write bold text, italic, or inline code anywhere.
- Item one
- Item two
A blockquote stands out.
The conversion happens client-side in your browser — no server, no round trip. Try the Markdown Preview tool to see this in real time.
Core syntax at a glance
Markdown covers the most common text formatting needs with just a few characters. For the full reference, see the Markdown Cheatsheet.
| You type | You get | HTML output |
|---|---|---|
# Heading 1 | Heading 1 | <h1> |
## Heading 2 | Heading 2 | <h2> |
**bold** | bold | <strong> |
*italic* | italic | <em> |
~~strike~~ | <del> | |
`code` | code | <code> |
[text](url) | text | <a href="url"> |
 | image | <img alt="alt"> |
- item | • item | <ul><li> |
1. item | 1. item | <ol><li> |
> quote | quote | <blockquote> |
--- | <hr> |
Where Markdown is used
Markdown went from a simple Perl script to the default writing format across the developer world.
Markdown flavors
The original 2004 spec left many edge cases undefined, which led to dozens of incompatible implementations. CommonMark (2014) resolved this with a precise, unambiguous specification. It is now the de facto standard.
This tool uses CommonMark via the marked library. GitHub Flavored Markdown (GFM) extensions — tables, task lists, strikethrough — are supported by most tools including GitHub, VS Code, and Notion.
Markdown vs. HTML
You are writing content meant to be read by humans: README files, documentation, blog posts, notes, messages. It is faster to type and easier to review in version control.
You need precise control over layout, custom attributes, or elements that Markdown has no shorthand for (forms, tables with colspan, embedded video). You can mix HTML directly inside Markdown when needed.
Try it now