What Is Markdown?
Markdown is a lightweight markup language that lets you format plain text using simple, readable syntax. Created by John Gruber in 2004, Markdown was designed to be easy to write and easy to read in its raw form, while converting cleanly to HTML and other formats. Today, Markdown is one of the most widely used formatting languages for documentation, notes, forums, static sites, and technical writing.
The core philosophy of Markdown is that plain text documents should be readable without being cluttered with formatting tags. Unlike HTML, where you wrap content in <b> and <i> tags, Markdown uses intuitive characters like asterisks and underscores to indicate emphasis.
Why Markdown became so popular
Simplicity. The syntax is minimal and intuitive. A few characters are all you need to create headings, lists, links and images. Most people can learn the basics in under five minutes.
Portability. Markdown files are plain text. They work on any operating system, in any editor and with any version control system. Your content stays accessible and editable for decades.
Universal conversion. Markdown converts to HTML, PDF, DOCX, LaTeX and dozens of other formats, which makes it ideal for content published across multiple platforms.
Widespread adoption. GitHub, Reddit, Stack Overflow, Notion, Obsidian and countless other platforms support Markdown. Learning it once gives you access to a huge ecosystem of tools.
Common Markdown syntax
| Element | Syntax |
|---|---|
| Heading | # H1 ## H2 ### H3 |
| Bold | **bold text** |
| Italic | *italic text* |
| Strikethrough (GFM) | ~~text~~ |
| Link | [title](https://example.com) |
| Image |  |
| Inline code | `inline code` |
| Code block | ``` |
| Unordered list | - item |
| Ordered list | 1. item |
| Task list (GFM) | - [x] done |
| Blockquote | > quote |
| Horizontal rule | --- |
| Table (GFM) | see below |
A GitHub-Flavored Markdown table:
| Column A | Column B |
|----------|----------|
| value 1 | value 2 |
Markdown flavors
"Markdown" is not a single standard. Several dialects exist, and they differ in the extras they add:
- Original Markdown — Gruber's 2004 syntax, deliberately minimal
- CommonMark — a rigorous, unambiguous specification that removes the original's edge-case ambiguities
- GitHub-Flavored Markdown (GFM) — CommonMark plus tables, task lists, strikethrough, autolinks and more
- Markdown Extra — adds footnotes, definition lists, abbreviations and fenced code with attributes
- MultiMarkdown / Pandoc Markdown — extended syntax aimed at publishing pipelines
If you write for GitHub or a modern static site generator, you are almost certainly using a CommonMark-compatible dialect with GFM extensions.
Escaping and edge cases
Because punctuation carries meaning, some characters must be escaped with a backslash when you want them literally:
\* not italic \*
\# not a heading
\[not a link]
Watch out for:
- A blank line before and after block elements. Lists, blockquotes and code blocks need breathing room, or they merge with surrounding text.
- Indentation inside lists. Nested content must be indented consistently (usually 4 spaces or one tab).
- Trailing double spaces create a line break in many dialects; use them only intentionally.
Converting Markdown to HTML
Converting Markdown to HTML is essential for publishing on the web. While you can do it manually, online tools make it effortless. Our Markdown to HTML converter provides live preview, syntax highlighting and one-click copy or download, so you can write in Markdown and instantly see the rendered HTML output.
Best practices
- Use semantic markup. Reserve
#for real headings, not just large text; this keeps documents accessible and outlines meaningful. - Keep lines short. Wrapping at around 80 characters produces cleaner diffs and easier reviews.
- Be consistent. Pick a style — such as ATX headings (
#) over Setext (===) — and stick with it. - Fence code blocks with a language identifier so editors and converters can highlight correctly.
- Add alt text to every image for accessibility.
- Store Markdown in version control to benefit from diffs and history.
When not to use Markdown
Markdown is a poor fit when you need precise layout control, complex tables with merged cells, or pixel-perfect typography. In those cases, use HTML, a document format such as DOCX, or a layout tool. Markdown is for content, not for design.
Frequently asked questions
Is Markdown the same as HTML? No. Markdown is a shorthand that converts to HTML. You can mix raw HTML into Markdown, but the two are different languages.
Does Markdown support tables? Core Markdown does not. Tables are part of GFM and other extended dialects.
Can I write Markdown in any text editor? Yes. Markdown is plain text, so Notepad, VS Code, Vim or any editor works. Editors add conveniences like preview and highlighting.
What file extension does Markdown use?
.md is standard, though .markdown and .mdown also appear.
Why does my rendering look different on two sites? Because they use different dialects and renderers. Differences usually come from GFM extensions, whitespace handling and HTML sanitisation.
Conclusion
Markdown has transformed how the web writes. Whether you are documenting an API, drafting a blog post or taking personal notes, Markdown gives you the clarity and flexibility of plain text with the power of rich formatting.