What Is Markdown? A Complete Guide to Markdown Syntax and Formatting
Markdown is a lightweight markup language that lets you format text using simple, readable syntax. It is widely used for documentation, README files, blog posts, and notes.
What Is Markdown?
Markdown is a lightweight markup language created by John Gruber in 2004. Its goal is to allow people to write content in a plain-text format that is easy to read and write, while being convertible to valid HTML. Markdown files use the .md extension and are supported by virtually every development platform, content management system, and note-taking application.
The key philosophy behind Markdown is that a document should be readable even in its raw form, without requiring special rendering. This makes it ideal for version control, collaborative editing, and technical documentation.
Headers
Markdown supports six levels of headers, created by prefixing text with one to six hash symbols:
# Heading 1— The largest heading, typically used for page titles## Heading 2— Major section headings### Heading 3— Subsection headings#### Heading 4through###### Heading 6— Progressively smaller headings
Text Formatting
Markdown provides simple syntax for basic text formatting:
- Bold text: Wrap text in double asterisks (
**bold**) or double underscores (__bold__) - Italic text: Wrap text in single asterisks (
*italic*) or single underscores (_italic_) Strikethrough: Wrap text in double tildes (~~strikethrough~~)Inline code: Wrap text in backticks (`code`)
Lists
Markdown supports both ordered and unordered lists:
- Unordered lists: Use asterisks (
*), plus signs (+), or hyphens (-) as bullet markers - Ordered lists: Use numbers followed by periods (
1.,2.,3.) - Nested lists: Indent items with two or four spaces to create sub-lists
Links and Images
Adding links and images is straightforward:
- Links:
[Link text](URL)creates a hyperlink - Images:
embeds an image - Reference links: Define links at the bottom of the document for cleaner readability
Code Blocks
For multi-line code, use triple backticks (```) or triple tildes (~~~). You can specify the programming language after the opening fence for syntax highlighting:
function greet(name) {
return `Hello, ${name}!`;
}
Tables
Markdown tables use pipes and hyphens to create rows and headers. While basic tables are part of standard Markdown, extended features like cell alignment use the GitHub Flavored Markdown (GFM) specification.
Blockquotes and Horizontal Rules
Blockquotes are created with the > symbol and are useful for citing sources or highlighting important information. Horizontal rules can be created with three or more hyphens (---), asterisks (***), or underscores (___).
Markdown's simplicity and universality make it the go-to format for developers, writers, and anyone who needs to create well-structured text content quickly.
Frequently asked questions
What is the difference between Markdown and HTML?
Markdown is a simplified markup language designed for readability in raw form, while HTML is a full-featured markup language with precise control over document structure. Markdown is often converted to HTML for web display.
What is GitHub Flavored Markdown (GFM)?
GFM is an extended version of Markdown used by GitHub that adds support for tables, task lists, strikethrough text, fenced code blocks with syntax highlighting, and automatic linking of URLs.
Can I mix HTML with Markdown?
Yes, most Markdown processors allow you to include raw HTML within Markdown documents. This is useful for elements that Markdown does not support natively, such as details tags or embedded videos.
Related guides
- What Is Base64 Encoding? How It Works and When to Use It
- What Is JSON? A Complete Guide to JavaScript Object Notation
- What Is URL Encoding? A Guide to Percent-Encoding in Web Addresses
- What Is a UUID? Understanding Universally Unique Identifiers
- What Is a Hash Function? Understanding MD5, SHA, and Cryptographic Hashing
Last updated on 2026-09-27