What is Markdown?

Markdown explained: why it was created, how plain text becomes HTML, the core syntax, and where it is used today.

5 min read·Updated June 2026

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:

Markdown source
# Getting Started

Write **bold** text, *italic*, or
`inline code` anywhere.

- Item one
- Item two

> A blockquote stands out.

```js
const x = 42
```
Rendered output
Getting Started

Write bold text, italic, or inline code anywhere.

  • Item one
  • Item two
A blockquote stands out.
const x = 42

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 typeYou getHTML output
# Heading 1Heading 1<h1>
## Heading 2Heading 2<h2>
**bold**bold<strong>
*italic*italic<em>
~~strike~~strike<del>
`code`code<code>
[text](url)text<a href="url">
![alt](img.png)image<img alt="alt">
- item• item<ul><li>
1. item1. item<ol><li>
> quotequote<blockquote>
---
<hr>

Where Markdown is used

Markdown went from a simple Perl script to the default writing format across the developer world.

Code hosting
GitHub, GitLab, Bitbucket — READMEs and wikis
Documentation sites
Docusaurus, MkDocs, VitePress, Astro, GitBook
Note-taking apps
Obsidian, Notion, Bear, Typora, iA Writer
Chat & forums
Discord, Slack, Reddit, Stack Overflow, Discourse
CI / DevOps
GitHub Actions, Jira, Confluence, Linear
Static site generators
Hugo, Jekyll, Next.js (MDX), Gatsby, Eleventy

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.

CommonMark
The canonical specification (2014). Precise and unambiguous. Implemented by GitHub, GitLab, Discourse, Reddit, and this tool.
GitHub Flavored Markdown (GFM)
CommonMark + tables, task lists (- [ ]), strikethrough, and auto-linked URLs. The most widely used superset.
MDX
Markdown with embedded JSX components. Used by Next.js, Astro, and Docusaurus for interactive documentation.
MultiMarkdown / Pandoc
Extended flavors with footnotes, citations, LaTeX math, and metadata headers. Used in academic and publishing workflows.

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

Use Markdown when…

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.

Use HTML when…

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.

Frequently asked questions