Skip to main content

Markdown Quotes and Blockquotes

Everything the > character does: single quotes, hard line breaks inside a quote, multiple paragraphs, nesting, attribution lines, GitHub alerts, and the places where it behaves differently.

Short answer

Start the line with > and your text. Every consecutive > line joins the same quote, and a blank line ends it. Those lines wrap into one paragraph, so to break them apart either end a line with two spaces or put a bare > line between them. Extra > characters nest one level deeper — except on Discord, where >>> quotes the rest of the message.

Basic Quote Syntax

A blockquote starts with a > character followed by a space. Renderers show it indented with a vertical bar down the side. Use it for citations, quoted replies, and callouts.

Basic quote — prefix the line with > and a space

Markdown

> This is a blockquote.

Preview

Consecutive > lines join one quote (they wrap as a single paragraph)

Markdown

> Every consecutive > line joins the same quote.
> This all renders as one continuous blockquote.

Preview

Multi-paragraph — a bare > line separates paragraphs inside the quote

Markdown

> First paragraph of the quote.
>
> Second paragraph — the blank line still needs its >.

Preview

Line Breaks Inside a Quote

This is the part that surprises people. Putting > on two lines does not give you two lines — a blockquote holds ordinary Markdown paragraphs, so the lines wrap together. You break them the same way you break any paragraph.

No hard break — these two lines render as one wrapped paragraph

Markdown

> First line of the quote.
> Second line of the quote.

Preview

Two trailing spaces after the first line force a line break

Markdown

> First line of the quote.  
> Second line of the quote.

Preview

A trailing backslash does the same thing and is easier to see

Markdown

> First line of the quote.\
> Second line of the quote.

Preview

Which one should you use? Two trailing spaces are the classic form, but they are invisible and many editors strip trailing whitespace on save. The backslash is a CommonMark addition, survives auto-formatting, and is visible in a diff. A bare > line gives you a full paragraph break instead, with vertical space between the two blocks.

Nested Blockquotes

Each additional > nests one level deeper, which is how quoted replies are shown in email-style threads. There is no practical depth limit, though the indentation gets unreadable after three or four levels.

One level of nesting with >>

Markdown

> Outer quote.
>> Inner nested quote.

Preview

Multiple levels of nesting (but see Discord below — >>> means something else there)

Markdown

> Outer quote here.
>> Second level nested.
>>> Third level — use >>> for deep nesting.

Preview

Common email-style reply pattern

Markdown

> Original message here.
>
>> Reply to the message above.

Preview

Attribution and Sources

Markdown has no citation syntax — no author field, no source URL. The convention is an attribution line inside the quote, introduced with an em dash. Because it is just another line of the same paragraph, it needs a hard break or a paragraph break in front of it, or it runs on from the quote text.

Attribution line — remember the two trailing spaces, or it joins the quote text

Markdown

> The best way to predict the future is to invent it.  
> — Alan Kay

Preview

Italic attribution as its own paragraph inside the quote

Markdown

> Simplicity is a great virtue.
>
> *— Edsger W. Dijkstra, 1984*

Preview

HTML fallback when you need a real cite attribute (GitHub keeps cite but drops the footer and cite tags)

Markdown

<blockquote cite="https://example.com/source">
  <p>Markdown has no syntax for a citation URL.</p>
  <footer>— <cite>Example Source</cite></footer>
</blockquote>

Preview

Quotes with Other Formatting

A blockquote is a container, not a text style, so it holds everything Markdown can express: inline formatting, lists, headings, tables, and fenced code. Prefix every line of the block with >.

Bold, italic, and links inside quotes

Markdown

> **Bold text** inside a blockquote.
> *Italic* and [links](https://example.com) work too.

Preview

Inline code inside a blockquote

Markdown

> Use `inline code` inside a quote.

Preview

List inside a blockquote

Markdown

> Here is a list inside a blockquote:
>
> - Item one
> - Item two
> - Item three

Preview

Heading inside a blockquote

Markdown

> ### Heading inside a quote
>
> You can use headings and other block elements.

Preview

Code block inside a blockquote

Markdown

> ```javascript
> const msg = "Code block inside a quote";
> console.log(msg);
> ```

Preview

GitHub Alert Callouts

GitHub turns a blockquote into a colored alert box when the first line is [!TYPE]. There are five types. The keyword is not case-sensitive, but it must sit alone on the first line: GitHub has no custom titles, an unknown type such as [!DANGER] stays a plain quote, and an alert nested inside a list or another element does not render. Renderers without alert support show a normal quote with the literal [!NOTE] text at the top, which is exactly what the previews below show.

NOTE — blue

Markdown

> [!NOTE]
> Useful information users should know, even when skimming.

Preview

TIP — green

Markdown

> [!TIP]
> Helpful advice for doing things better.

Preview

IMPORTANT — purple

Markdown

> [!IMPORTANT]
> Key information users need to know to achieve their goal.

Preview

WARNING — yellow

Markdown

> [!WARNING]
> Urgent info that needs immediate user attention.

Preview

CAUTION — red

Markdown

> [!CAUTION]
> Advises about risks or negative outcomes of an action.

Preview

Obsidian looks similar but does more. All five GitHub types render as Obsidian callouts (IMPORTANT is styled as a tip and CAUTION as a warning), but Obsidian also accepts custom titles on the same line, folds the callout when you add a - or +, has ten more types (such as info, bug, and quote), and treats an unknown type as a note. Those extras show up as literal text on GitHub.

Common Mistakes

Nearly every blockquote problem is a blank-line problem: one missing >, or one blank line too few.

Not what you meant

> Line one of the quote.
> Line two of the quote.

Fixed

> Line one of the quote.\
> Line two of the quote.
Consecutive > lines are one paragraph, so they wrap together instead of breaking. Force a hard break with a trailing backslash, as above, or with two trailing spaces — the same rule as any other Markdown paragraph. The backslash is shown here because trailing spaces are invisible on the page.

Not what you meant

> First paragraph.

> Second paragraph.

Fixed

> First paragraph.
>
> Second paragraph.
A fully blank line ends the blockquote, so you get two separate quotes stacked on top of each other. Keep the > on the empty line to stay inside one quote.

Not what you meant

> A quoted sentence.
This line was meant to be normal text.

Fixed

> A quoted sentence.

This line is normal text.
Lazy continuation: a plain paragraph line directly under a quote is pulled into it, no > required. Leave a blank line to get back out of the blockquote.

Not what you meant

>>> Line one of the quote.
Line two of the quote.

Fixed

> Line one of the quote.
> Line two of the quote.
>>> is Discord's shortcut for quoting the rest of a message. Everywhere that follows CommonMark it means three nested quotes, and lazy continuation pulls the next lines into the innermost one. Use a single > per line. GitLab is different again: a line holding only >>> opens a multi-line quote that a second >>> line closes.

Quick Reference

SyntaxResult
> Quote textBasic blockquote
> Line one.·· > Line two.Hard line break inside the quote (·· = two spaces)
> Para 1 > > Para 2Two paragraphs in one quote
>> NestedNested quote, one level deeper
>>> DeepThird-level nested quote (on Discord: quotes the rest of the message)
> **bold** textBold inside a quote
> `code` hereInline code inside a quote
> - ItemList inside a quote
> [!NOTE]GitHub alert callout
> — Author NameAttribution line convention

Platform Support

The > character quotes text almost everywhere. What varies is nesting, and what the extra > characters mean.

PlatformSupported?Notes
CommonMark / GFMYesFull support: >, nesting, multi-paragraph, and any block element inside the quote.
GitHubYesStandard blockquotes plus [!NOTE], [!TIP], [!IMPORTANT], [!WARNING], and [!CAUTION] alerts. Raw <blockquote cite> keeps its cite attribute, but <footer> and <cite> tags are stripped (their text stays).
GitLabYesStandard blockquotes and nesting, plus a multi-line quote fenced by >>> lines, and GitHub-style > [!note] alerts (GitLab 17.10+, custom titles allowed).
ObsidianYesBlockquotes plus > [!note] callouts, which are foldable with > [!note]- and support custom titles.
DiscordPartial> quotes one line. >>> quotes everything to the end of the message. There is no nesting — extra > characters do not stack.
SlackPartial> renders as a quote bar. No nesting; repeat > on every line you want quoted.
RedditYes> works in the Markdown editor, and >> nests. The Rich Text editor (the default) uses a quote button instead.
NotionPartialQuote blocks exist, but typing > + space creates a toggle list. Type " + space, or use /quote, to get a quote block.
VS Code previewYesFull CommonMark blockquote support, including nesting and embedded code blocks.
Jupyter / R MarkdownYesStandard blockquote rendering in notebook output and knitted HTML.

Frequently Asked Questions

How do I quote text in Markdown?

Put a > character at the start of the line, followed by a space and your text. For example: > This is a quote. Consecutive > lines join into one blockquote, and a blank line ends it.

Why do my two quoted lines render as one line?

Because consecutive > lines form a single paragraph, exactly like normal Markdown text. To force a break, end the first line with two spaces or a backslash, or separate the lines with a bare > line to make two paragraphs.

Can I have multiple paragraphs inside a blockquote?

Yes. Put a > on the empty line between them: > First paragraph. > > Second paragraph. If the empty line has no >, the quote ends and you get two separate blockquotes.

How do I nest blockquotes?

Add more > characters. One > is level 1, >> is level 2, >>> is level 3. This is the standard way to show quoted replies in email-style threads. Note that Discord does not nest at all, and treats >>> as a multi-line quote instead.

How do I end a blockquote?

Leave a completely blank line after it. Without one, the next paragraph gets pulled into the quote by lazy continuation — a plain line directly under a quote is treated as part of it even with no > in front.

How do I add the author or source to a Markdown quote?

There is no citation syntax, so add an attribution line yourself: > — Alan Kay, with two trailing spaces on the line above so it breaks onto its own line. If you need a machine-readable source, drop to raw HTML with <blockquote cite="...">. GitHub keeps the cite attribute but strips <footer> and <cite> tags, leaving their text.

Can I use bold, italic, code, lists, or headings inside a blockquote?

Yes — all inline formatting and most block elements work inside a quote. Start every line of the block with > , including the lines of a nested list or fenced code block.

What is the difference between a blockquote and a code block?

A blockquote (>) is for quoted or highlighted prose and still renders its contents as Markdown. A code block (``` or four spaces) renders its contents literally in a monospace font with no formatting applied.

Does GitHub Markdown support callout boxes?

Yes. Put [!NOTE], [!TIP], [!IMPORTANT], [!WARNING], or [!CAUTION] alone on the first line of a blockquote and GitHub renders a colored alert box with an icon. The type is not case-sensitive, but there are no custom titles and no other types. GitLab (17.10+) and Obsidian render the same syntax; most other renderers show an ordinary quote with the literal [!NOTE] at the top.

Do I need a space after the > character?

Not in CommonMark or on GitHub: >Quote parses the same as > Quote. Discord is the exception: its docs tell you to put a space between > and your text. Keep the space everywhere and it works on every platform.