MarkdownCheatsheet

Every Markdown syntax you'll actually use, with live examples you can copy. From headers and bold text to tables and code blocks.

Headers

Create headings with different sizes

Markdown
# H1 Heading
Output
# H1 Heading
Markdown
## H2 Heading
Output
## H2 Heading
Markdown
### H3 Heading
Output
### H3 Heading
Markdown
#### H4 Heading
Output
#### H4 Heading
Markdown
##### H5 Heading
Output
##### H5 Heading
Markdown
###### H6 Heading
Output
###### H6 Heading

Text Formatting

Emphasize text with bold, italic, and more

Markdown
**bold text**
Output
**bold text**
Markdown
*italic text*
Output
*italic text*
Markdown
***bold and italic***
Output
***bold and italic***
Markdown
~~strikethrough~~
Output
~~strikethrough~~
Markdown
`inline code`
Output
`inline code`

Lists

Create ordered and unordered lists

Markdown
- Item 1
- Item 2
- Item 3
Output
- Item 1 - Item 2 - Item 3
Markdown
1. First item
2. Second item
3. Third item
Output
1. First item 2. Second item 3. Third item
Markdown
- Item 1
  - Nested item
  - Another nested
- Item 2
Output
- Item 1 - Nested item - Another nested - Item 2
Markdown
- [ ] Unchecked task
- [x] Checked task
Output
- [ ] Unchecked task - [x] Checked task

Links and Images

Add links and images to your content

Markdown
[Link text](https://example.com)
Output
[Link text](https://example.com)
Markdown
[Link with title](https://example.com "Title")
Output
[Link with title](https://example.com "Title")
Markdown
![Alt text](image.jpg)
Output
![Alt text](image.jpg)
Markdown
[![Image](image.jpg)](https://example.com)
Output
[![Image](image.jpg)](https://example.com)

Code Blocks

Display code with syntax highlighting

Markdown
```javascript
function greet() {
  return 'Hello';
}
```
Output
function greet() {
  return 'Hello';
}
Markdown
```python
def hello():
    print('Hello')
```
Output
def hello():
    print('Hello')
Markdown
```
Plain code block
```
Output
Plain code block

Tables

Create structured tables

Markdown
| Header 1 | Header 2 |
|----------|----------|
| Cell 1   | Cell 2   |
| Cell 3   | Cell 4   |
Output
| Header 1 | Header 2 | |----------|----------| | Cell 1 | Cell 2 | | Cell 3 | Cell 4 |
Markdown
| Left | Center | Right |
|:-----|:------:|------:|
| Left | Center | Right |
Output
| Left | Center | Right | |:-----|:------:|------:| | Left | Center | Right |

Blockquotes

Quote text or add callouts

Markdown
> This is a blockquote
Output
> This is a blockquote
Markdown
> Multi-line blockquote
> with multiple lines
Output
> Multi-line blockquote > with multiple lines
Markdown
> Nested quotes
>> Are also possible
Output
> Nested quotes >> Are also possible

Horizontal Rules

Create visual separators

Markdown
---
Output

Markdown
***
Output

Markdown
___
Output

Escaping Characters

Display special characters literally

Markdown
\*Not italic\*
Output
\*Not italic\*
Markdown
\# Not a heading
Output
\# Not a heading
Markdown
\`Not code\`
Output
\`Not code\`

Line Breaks

Control line spacing

Markdown
Line 1  
Line 2 (two spaces before newline)
Output
Line 1 Line 2 (two spaces before newline)
Markdown
Paragraph 1

Paragraph 2 (blank line)
Output
Paragraph 1 Paragraph 2 (blank line)

Quick Reference

The syntax you'll reach for most often

# Header

H1 Header

## Header

H2 Header

**bold**

Bold text

*italic*

Italic text

`code`

Inline code

```code```

Code block

- List

Unordered list

1. List

Ordered list

[Link](url)

Create link

![Alt](img.jpg)

Insert image

> Quote

Blockquote

---

Horizontal rule

| Table |

Create table

- [ ] Task

Task list

~~text~~

Strikethrough

Where People Actually Write Markdown

GitHub and GitLab Repos

README files, CONTRIBUTING guides, changelogs, PR descriptions -- they're all Markdown. If you push code to GitHub, you're writing Markdown whether you realize it or not. Knowing the syntax means your project pages look polished instead of like plain text dumps.

Note-Taking Apps

Obsidian stores everything as .md files. Logseq uses Markdown. Notion accepts Markdown shortcuts as you type. Learning Markdown once means you can write faster in all of these apps, and your notes aren't locked into any single tool's format.

Blog Engines and Static Sites

Hugo, Jekyll, Astro, Next.js -- they all take Markdown files and turn them into web pages. I use this approach for my own blog. Write in Markdown, push to git, the site builds itself. No CMS needed, just a text editor and the syntax on this page.

Books and Technical Writing

Tools like Pandoc can take a Markdown manuscript and output PDF, EPUB, LaTeX, or Word docs. Some O'Reilly authors write entire books in Markdown. The source stays readable and diffable, and you only deal with formatting when you export.

Frequently Asked Questions

It's a way to format plain text so it looks good when rendered. John Gruber created it back in 2004. You write things like **bold** and # Heading instead of HTML tags, and a parser turns it into formatted output. It's used everywhere now -- GitHub READMEs, Notion, Obsidian, Slack, Discord, you name it. Files end in .md.
Standard Markdown doesn't have tables or task lists. GitHub added those (plus strikethrough, fenced code blocks, and auto-linked URLs) and called it GFM. Pretty much every modern Markdown tool supports GFM now, not just GitHub. You can test your GFM in our Live Markdown Preview editor.
You separate columns with pipes (|) and add a row of dashes after the header. It looks like this: | Name | Age | then |------|-----| then | Alice | 30 |. Honestly, typing tables by hand is annoying. That's why I built the Markdown Table Formatter -- it fixes alignment automatically.
Yep. Bold inside a list item works fine. Links inside headings too. Code inside bold text, sure. The tricky part is nesting blockquotes more than two levels deep -- different parsers handle that differently. Same with deeply nested lists. But for normal use, nesting works the way you'd expect.
Markdown covers about 80% of what you need for text formatting with 20% of the typing. If you need custom styles, embedded videos, or complex layouts, you'll want HTML. The good news: most Markdown parsers let you mix in raw HTML. And if you need to convert between them, try our Markdown to HTML converter.
A lot. VS Code has it built in with preview. Obsidian and Logseq are built on it. Notion supports it for input. Bear, iA Writer, and Typora are popular dedicated editors. On the web, GitHub, GitLab, Reddit, Stack Overflow, and Discord all parse Markdown. Static site generators like Hugo and Jekyll use it for blog content.
The syntax is ![Alt text](image-url). The exclamation mark is what makes it an image instead of a link. You can add a hover title too: ![Alt text](image-url "My title"). One catch -- the image has to be hosted somewhere with a public URL. Markdown doesn't embed images, it just references them.
That's actually what this whole site is about. We have Markdown to HTML, Markdown to Excel, Markdown to DOC, Markdown to PDF, Markdown to CSV, and Markdown to JSON. All free.
Write - [ ] for an unchecked box and - [x] for a checked one. GitHub actually renders these as clickable checkboxes in issues and PRs, which is great for tracking to-dos. Other platforms render them too, but they're usually not interactive. It's a GFM feature, not part of the original spec.

Try Your Markdown Now

Got the syntax down? Test it in the live editor or convert your Markdown to any format.