Introduction
Markdown is a way of writing formatted text with plain characters, created by John
Gruber with Aaron Swartz in 2004. A # makes a heading, asterisks make
emphasis and a dash starts a list item, so the file reads naturally as written and
converts cleanly to HTML. It is used for README files, documentation, notes and
comments on sites such as GitHub.
The original description left many cases open, so dialects grew. CommonMark is a
precise specification of the core, and GitHub Flavored Markdown adds tables, task
lists and strikethrough on top of it. Files use .md or
.markdown. The .md extension is also used for Sega Mega Drive
ROM images.
Structure
A Markdown file is plain text, normally UTF-8. Blocks are separated by blank lines:
headings start with one to six # characters, list items with
-, * or a number, quotes with >, and code
blocks are fenced by three backticks. Within a line, *text* and
**text** give emphasis and strong emphasis, and
[text](address) makes a link. Many tools also read a block of YAML front
matter between two --- lines at the top of the file.
# Packing list
Bring the **essentials** and *nothing* more:
- Tent
- Stove
- [Map of the route](https://example.com/map)
> Check the forecast before leaving.
Also used for
Links
Software
- Markdown.org editor (web browsers)
- Visual Studio Code (Windows, macOS, Linux)
- Obsidian (Windows, macOS, Linux, mobile)
- Typora (Windows, macOS, Linux)
- Pandoc (command line converter)
- GitHub (shows .md files as formatted pages)
Developers
- cmark, C reference implementation of CommonMark
- markdown-it, JavaScript Markdown parser
- Marked, JavaScript Markdown parser
- Python-Markdown, Python Markdown to HTML converter
Reference
- CommonMark Spec
- GitHub Flavored Markdown Spec
- Markdown, John Gruber’s original description