Markdown is a lightweight markup language that lets you add formatting to plain text. Created by John Gruber in 2004, it's now the standard for README files, documentation, blog posts, notes, and countless other writing contexts. The key idea is that Markdown is readable as-is — the syntax is intuitive enough that you can understand a document even before it's rendered.
This cheat sheet covers every syntax element you'll use day to day, with the Markdown input on the left and the rendered result described on the right.
Headings
Headings are created with the # character. The number of hashes determines the heading level, from H1 (largest) to H6 (smallest). Always leave a space between the hash and the heading text.
| Markdown | Renders as |
|---|---|
# Heading 1 | Large page title (H1) |
## Heading 2 | Section heading (H2) |
### Heading 3 | Sub-section (H3) |
#### Heading 4 | Smaller sub-section (H4) |
##### Heading 5 | Minor heading (H5) |
###### Heading 6 | Smallest heading (H6) |
Bold, italic and strikethrough
Emphasis is applied by wrapping text in asterisks or underscores. Asterisks are more universally supported and are the recommended choice.
| Markdown | Renders as |
|---|---|
**bold text** | bold text |
*italic text* | italic text |
***bold and italic*** | bold and italic |
~~strikethrough~~ |
Unordered lists
Create bullet lists with a -, *, or + followed by a space. Nest items by indenting with two or four spaces.
- Second item
- Nested item
- Another nested item
- Third item
Ordered lists
Use numbers followed by a period and a space. The actual numbers don't have to be in order — Markdown renumbers them automatically — but starting with 1. is clearest.
2. Second step
3. Third step
Links
Links use the format [link text](URL). You can optionally add a title that appears on hover: [link text](URL "Title"). For bare URLs, wrap in angle brackets: <https://example.com>.
[SmartiTools](https://smartitools.com)
→
Clickable link reading "SmartiTools"
[Docs](https://example.com "Documentation")
→
Link with "Documentation" tooltip on hover
Images
Images follow the same syntax as links, but with an exclamation mark prefix: . The alt text is important for accessibility and is shown when the image fails to load.

→
Rendered image with alt text "Logo"
Inline code and code blocks
Wrap a word or phrase in backticks for inline code: `variable`. For multi-line code blocks, use three backticks on their own line. Optionally specify a language after the opening backticks for syntax highlighting.
function greet(name) {
return `Hello, ${name}!`;
}
```
javascript, python, bash, sql, and json are widely supported by renderers like GitHub, VS Code, and most documentation platforms.
Blockquotes
Prefix a line with > to create a blockquote. Nest blockquotes by adding more > characters. Blockquotes can contain other Markdown elements like bold text and lists.
> It can span multiple lines.
>
>> This is a nested blockquote.
Tables
Tables use pipe characters (|) to separate columns and hyphens to create the header separator row. Colons in the separator row control column alignment.
|---------|-----|----------|
| Alice | 30 | London |
| Bob | 25 | New York |
Use :--- for left-align, ---: for right-align, and :---: for centre-align in the separator row.
Horizontal rules
Create a horizontal dividing line using three or more hyphens, asterisks, or underscores on their own line. Leave a blank line before and after to avoid it being interpreted as a heading.
---
→
A full-width horizontal rule
Escaping special characters
If you need to display a character that Markdown would normally interpret as formatting — like *, #, [, or ` — prefix it with a backslash.
\*not italic\*
→
*not italic* (literal asterisks)
\# Not a heading
→
# Not a heading (literal hash)
Quick reference summary
| Element | Syntax |
|---|---|
| H1 heading | # Heading |
| Bold | **text** |
| Italic | *text* |
| Strikethrough | ~~text~~ |
| Inline code | `code` |
| Code block | ```lang ... ``` |
| Link | [text](url) |
| Image |  |
| Blockquote | > text |
| Unordered list | - item |
| Ordered list | 1. item |
| Horizontal rule | --- |
| Escape character | \* |
Write Markdown with a live preview
Type Markdown on the left and see the rendered output instantly on the right. Supports GFM, tables, and syntax highlighting.
Open Markdown Editor