Markdown basics

The Markdown Cheat Sheet: Every Syntax on One Page

Everything below is Markdown you can copy, paste and use today. Bookmark this page: it is the whole syntax on one screen, with what each line actually turns into. Every example here was rendered by QuickMark's own engine, so what you see is what you get.

The five you will use every day

You write
# Heading 1
## Heading 2

**bold** and *italic*

- a bullet
- another

[a link](https://example.com)
You get

Heading 1

Heading 2

bold and italic

  • a bullet
  • another

a link

That is genuinely most of it. Markdown is small on purpose. The rest of this page is the long tail, roughly in the order people reach for it.

Text

You write
**bold**
*italic*
***both***
~~strikethrough~~
==highlight==
`inline code`
H~2~O and X^2^
You get

bold
italic
both
strikethrough
highlight
inline code
H2O and X2

Underscores work too: _italic_ and __bold__. Pick one style and stay with it. Asterisks are the safer habit because underscores inside a word (snake_case_name) can trip some parsers.

Headings

One # per level, up to six, and always a space after the hashes. #Heading with no space is not a heading.

You write
# Level 1
## Level 2
### Level 3
#### Level 4
You get

Level 1

Level 2

Level 3
Level 4

Lists

You write
- Bullet
- Another
  - Indent two spaces

1. First
2. Second

- [x] Done
- [ ] Not done
You get
  • Bullet
  • Another
    • Indent two spaces
  1. First
  2. Second
  • Done
  • Not done

Numbered lists renumber themselves. You can write 1. on every line and the output still counts 1, 2, 3, which makes reordering painless.

Links and images

You write
[text](https://example.com)
<https://example.com>
https://example.com
![alt text](cat.png)
You get

text
https://example.com
https://example.com
the image, inline

An image is a link with ! in front. Bare URLs turn into links on their own, so you rarely need the angle brackets. Links open in a new tab, and the path in an image can be relative to the file, which is how a screenshot sitting next to your notes shows up inline.

Tables

You write
| Item | Qty | Price |
|:-----|:---:|------:|
| Pens |  12 | $3.50 |
| Pads |   4 | $8.00 |
You get
ItemQtyPrice
Pens12$3.50
Pads4$8.00

The colons in the dashed row set alignment: left, centre, right. Your pipes do not need to line up in the source, though it is easier to read when they do. Full detail in how to make a table in Markdown.

Code

You write
Use `git status` inline.

```swift
struct Note {
    var title: String
}
```
You get

Use git status inline.

struct Note {
    var title: String
}

The word after the opening backticks is the language, and it is what turns the colours on. QuickMark highlights 30+ languages; swift, js, python, bash, json and sql all work. Leave it off and you get a plain grey block.

Quotes and callouts

You write
> A plain quote.

> [!NOTE] Optional title
> A callout. Also [!TIP],
> [!WARNING], [!IMPORTANT].
You get

A plain quote.

Optional title
A callout. Also [!TIP], [!WARNING], [!IMPORTANT].

Everything else

You write
---

Footnote here[^1]

[^1]: The note text.

:rocket: :tada:

\*not italic\*
You get

Footnote here1

1. The note text.

🚀 🎉

*not italic*

Three dashes on their own line is a horizontal rule. A backslash escapes any character that would otherwise be syntax, which is how you write a literal asterisk or underscore.

Math and diagrams

Neither is standard Markdown, but both are common enough that a cheat sheet without them is incomplete. QuickMark renders both with nothing to install.

You write
Inline: $E = mc^2$

$$
\int_0^1 x^2 dx = \frac{1}{3}
$$

```mermaid
flowchart LR
  A --> B
```
You get

Inline: E = mc²

the integral, typeset

a left-to-right flowchart

Math uses KaTeX syntax between $ for inline and $$ for a centred block. Diagrams use a mermaid code fence. Here is what both look like rendered on a phone, no plugins, no setup:

QuickMark on iPhone showing a rendered document with a blue NOTE callout, an inline KaTeX formula, a typeset integral, and a Mermaid flowchart
Callout, inline math, a typeset integral and a Mermaid flowchart, rendered on an iPhone.

Three things that surprise people

A single line break does nothing. Two lines of text with one newline between them become one paragraph. To force a line break, end the first line with two spaces, or leave a blank line to start a new paragraph.

Quotes and dashes get prettified. Straight quotes become curly ones, -- becomes an en dash, and ... becomes a single ellipsis character. Lovely in prose, occasionally surprising when you meant the literal characters.

Your file stays plain text. None of this is stored as formatting. Open the same .md in any editor on any machine in ten years and it still reads fine. That is the entire point of Markdown, and the reason it outlasted every rich-text format it competed with.

The whole sheet, at a glance

WriteGet
# TextHeading, one # per level
**text**Bold
*text*Italic
~~text~~Strikethrough
==text==Highlight
`text`Inline code
- itemBullet list
1. itemNumbered list
- [ ] itemTask checkbox
[text](url)Link
![alt](url)Image
> textBlockquote
> [!NOTE]Callout
| a | b |Table row
```langCode block with highlighting
---Horizontal rule
text[^1]Footnote
$x^2$Inline math
```mermaidDiagram
:rocket:Emoji
H~2~O / X^2^Subscript / superscript
\*text\*Literal asterisk, escaped
QuickMark on iPhone rendering a Markdown cheat sheet document with headings, bold and highlighted text, nested lists, checked task list items and an aligned table
The basics rendered on an iPhone: emphasis, nested lists, task checkboxes and an aligned table.

The fastest way to learn any of this is to type it and watch it change. Paste the table above into the live preview in your browser, or open a .md file on your Mac and press Space in Finder to see it rendered instantly.

Get rendered Markdown previews everywhere

QuickMark is a free, native Markdown app for Mac, iPhone & iPad — live preview, export, and publish built in.

Download on the App Store or try the live preview in your browser →