What Is Markdown?
Markdown is a plain text formatting syntax that converts to HTML. Here is how it works, where it came from, and why it is used everywhere.
The idea behind Markdown
John Gruber created Markdown in 2004 with one goal: to make a format that is readable as plain text and can also be automatically converted to HTML. Email formatting conventions (using *asterisks* for emphasis, writing headers with ===) informed the syntax, making it feel natural without ever seeing the rendered output.
The result: a file like a README.md reads clearly as plain text in any editor, but renders beautifully as formatted HTML on GitHub or any website.
Markdown vs HTML — a comparison
Markdown
# Hello World **Bold** and *italic* text. [A link](https://example.com) - Item one - Item two
Generated HTML
<h1>Hello World</h1> <p><strong>Bold</strong> and <em>italic</em> text.</p> <p><a href="https://example.com"> A link</a></p> <ul> <li>Item one</li> <li>Item two</li> </ul>
Where Markdown is used
Try Markdown live
Write Markdown and see the rendered preview instantly. No sign-up.
Open Markdown Previewer →Frequently asked questions
What is Markdown?
Markdown is a lightweight markup language created by John Gruber in 2004 that converts plain text into HTML. It uses simple syntax like # for headers, **text** for bold and [text](url) for links. The goal was to create a format that is readable as plain text but can be automatically converted to HTML.
Where is Markdown used?
Markdown is used everywhere in software development and content creation: GitHub READMEs and documentation, Stack Overflow questions and answers, Reddit posts, Notion, Obsidian, Roam Research and other note-taking apps, blog platforms like Ghost and Jekyll, Slack and Discord messaging, and many technical documentation systems.
What is the difference between Markdown and HTML?
HTML is a full markup language with opening and closing tags. Markdown is a simplified shorthand that gets converted to HTML. Writing # Heading in Markdown is equivalent to <h1>Heading</h1> in HTML. Markdown is much faster to write and more readable as plain text, but HTML gives you finer control over formatting.
Is Markdown a programming language?
No. Markdown is a markup language and text formatting syntax, not a programming language. It has no logic, variables or functions — it is purely for text formatting. There are various Markdown processors (parsers) written in different programming languages that convert Markdown syntax to HTML output.
What are the different flavours of Markdown?
The original Markdown spec by John Gruber (2004) is the basis. CommonMark is a standardised specification that resolves ambiguities. GitHub-Flavored Markdown (GFM) adds tables, task lists, strikethrough and code blocks with language hints. MultiMarkdown adds footnotes, citations and tables. Most tools support CommonMark or GFM.
Can I use HTML inside Markdown?
Yes, in most Markdown processors you can include raw HTML directly in your Markdown document. This is useful when you need formatting that Markdown does not support natively, like coloured text, subscript/superscript, or custom CSS classes. The HTML passes through to the rendered output unchanged.