What Is Markdown? A Plain-English Guide With Examples
You’ve seen a file ending in .md, a README full of # and **, or an AI answer with odd symbols in it. This guide explains what Markdown is, why it exists, and how to read and write it — with no jargon.
Markdown is a way to write formatted text using only plain characters. You type # Title for a heading, **bold** for bold, and - item for a list; a Markdown viewer turns those marks into a formatted page. Files are plain text, usually named .md.
To see Markdown formatted right now, paste it into MarkdownPreview.net.
Markdown in one example
Markdown lets you add structure to text with simple punctuation, while the file itself stays readable as plain text. On the left is what you type; on the right is what a Markdown viewer shows.
# Weekend plan Visit the **farmers market**, then *maybe* a hike. - Buy bread - Buy tomatoes - Pack water Route notes are on [the trail site](https://example.com).
Weekend plan
Visit the farmers market, then maybe a hike.
- Buy bread
- Buy tomatoes
- Pack water
Route notes are on the trail site.
The RFC that registers Markdown as an internet media type describes it as “a family of plain-text formatting syntaxes that optionally can be converted to formal markup languages” such as HTML.
What is a .md file?
A .md (or .markdown) file is a Markdown document saved as plain text. RFC 7763 registers both extensions and states that “Markdown content is plain-text content.” That means any text editor can open it — you’ll just see the symbols instead of the formatting. The most famous .md file is README.md, the front page GitHub shows for a project.
To see an .md file formatted on your device, follow how to open an .md file.
Where Markdown came from
- 2004 — John Gruber creates Markdown. His project page says Aaron Swartz “deserves a tremendous amount of credit for his feedback on the design of Markdown’s formatting syntax.” The goal, in Gruber’s words: “The overriding design goal for Markdown’s formatting syntax is to make it as readable as possible.” The page lists Markdown 1.0.1, dated 17 December 2004, as the download.
- Many flavors appear. CommonMark’s authors point out that Gruber’s description “does not specify the syntax unambiguously,” so different tools handled edge cases differently.
- 2014 — CommonMark. A group including John MacFarlane and Jeff Atwood set out to write “a standard, interoperable and testable version of Markdown.” Its spec’s latest listed version is 0.31.2, from January 2024.
- 2016 — Internet media type. RFC 7763 registers
text/markdown; RFC 7764 registers variants including CommonMark and GitHub Flavored Markdown. - 2017 — GitHub adopts CommonMark. GitHub enabled CommonMark rendering for comments, then for Markdown content stored in Git repositories, and published a formal GFM spec.
Flavors: CommonMark, GFM, and the rest
Everyday syntax — headings, bold, lists, links, code — works the same almost everywhere. Differences appear in extras like tables, task lists, and diagrams. That’s why a README can look slightly different on GitHub than in another tool; see our GitHub Markdown troubleshooting guide.
| Flavor | Who | Notes |
|---|---|---|
| Original Markdown | John Gruber | The 2004 syntax description and Perl script. Gruber's description does not specify the syntax unambiguously, so implementations disagreed on edge cases. |
| CommonMark | A group including John MacFarlane and Jeff Atwood | A standard, testable specification for Markdown, announced in 2014. The latest version listed is 0.31.2 (January 2024). |
| GitHub Flavored Markdown (GFM) | GitHub | A strict superset of CommonMark that adds tables, task lists, strikethrough, and extended autolinks. Used for user content on GitHub. |
| GitLab Flavored Markdown | GitLab | Core features based on CommonMark, plus GFM-style extensions. |
| Obsidian and similar notes apps | Each app | Add their own syntax, such as wikilinks, on top of everyday Markdown. |
| Others registered with IANA | Various | MultiMarkdown, Pandoc, Fountain, kramdown-rfc2629, rfc7328, and PHP Markdown Extra are registered variants (RFC 7764). |
Where Markdown is used
| Where | How it’s used | Source |
|---|---|---|
| GitHub | READMEs, issues, pull requests, and any Markdown file in a repository | GitHub Docs |
| GitLab | Project docs, issues, and merge requests (GitLab Flavored Markdown) | GitLab Docs |
| VS Code | Files saved as .md get a built-in preview; it targets the CommonMark specification | VS Code Docs |
| Hugo | Markdown is the default content format; rendered by Goldmark (CommonMark and GFM) | Hugo Docs |
| Jekyll | Posts are typically written in Markdown | Jekyll Docs |
| Jupyter notebooks | Markdown cells hold the explanatory text | Jupyter Docs |
| Stack Overflow | Posts support Markdown (as of its 2011 announcement) | Stack Overflow Blog |
| Obsidian | Notes are Markdown files, with extra syntax of Obsidian's own | Obsidian Help |
It is also common in AI chat tools, which often reply with Markdown; Google’s October 2026 announcement of native Markdown support in Drive and Docs notes that Markdown is widely used with LLMs because it keeps structure such as tables, headers, and lists. If an AI answer is full of symbols, paste it into a Markdown viewer to read it formatted.
Markdown vs HTML
Markdown doesn’t try to replace HTML. Gruber’s syntax page puts it this way: “HTML is a publishing format; Markdown is a writing format,” and “Markdown’s formatting syntax only addresses issues that can be conveyed in plain text.” Most tools convert Markdown to HTML for display, and many allow raw HTML inside a Markdown file for anything Markdown can’t express.
The basics in 60 seconds
| You type | You get |
|---|---|
| # Heading | A heading (more # means a smaller heading) |
| **bold** and *italic* | Bold and italic text |
| - item | A bulleted list item (use 1. for numbered lists) |
| [text](https://example.com) | A link |
|  | An image |
| `code` | Inline code (three backticks make a code block) |
That’s enough to write a README or a note. For every other piece of syntax — tables, footnotes, alerts, and more — use the universal Markdown cheat sheet on MDConverter.
How to view and edit Markdown
- In your browser, with nothing to install: MarkdownPreview.net shows a live preview as you type, or opens a .md file you drop in.
- On GitHub: test a README before you push with the GitHub Markdown preview, or start one from the README generator.
- In your editor: see VS Code or 15 other editors.
- In Google Docs: Markdown in Google Docs and Drive.
History, version numbers, and quotations come from Gruber’s own pages, the CommonMark and GitHub specifications, the IETF RFCs, and each tool’s official documentation, all listed in Sources and checked on the date shown at the top. The example above is rendered by the same engine as our previewer.
Where we couldn’t read an official source — for example, the help pages for Reddit and Discord — we left the claim out. Spot a mistake? Email hello@markdownpreview.net.
Frequently asked questions
What is Markdown used for?
Is Markdown a programming language?
What does .md stand for?
What is the difference between Markdown, CommonMark, and GitHub Flavored Markdown?
Can I use Markdown in Microsoft Word or Google Docs?
Do I need special software to write Markdown?
Sources
- Daring Fireball — Markdown (project page, John Gruber) — authorship, credit to Aaron Swartz, readability goal, version 1.0.1
- Daring Fireball — Markdown Syntax Documentation — readability emphasis and the relationship to HTML
- CommonMark — home page — why CommonMark exists
- CommonMark Spec (John MacFarlane) — version history; latest 0.31.2
- Coding Horror — Standard Markdown is now Common Markdown (Sept 2014)
- GitHub Flavored Markdown Spec — version 0.29-gfm; a strict superset of CommonMark
- GitHub Blog — A formal spec for GitHub Flavored Markdown (Mar 2017)
- RFC 7763 — The text/markdown Media Type
- RFC 7764 — Guidance on Markdown: Design Philosophies, Stability Strategies, and Select Registrations — registered variants
- GitHub Docs — About writing and formatting on GitHub
- GitHub Docs — About READMEs
- GitLab Docs — GitLab Flavored Markdown
- VS Code Docs — Markdown and Visual Studio Code
- Hugo Docs — Content formats
- Jekyll Docs — Writing posts
- Jupyter Docs — Working with Markdown cells
- Stack Overflow Blog — Inline comment and post Markdown help (2011)
- Obsidian Help — Basic formatting syntax