Reddit Formatting Guide

Reddit Markdown cheat sheet: bold, italics, spoilers, superscript, strikethrough, tables and links — with a live previewer

Quick answer

Reddit uses standard Markdown for **bold**, *italic*, ~~strike~~, lists, quotes, and links — plus two Reddit-only extras: ^(superscript) and spoilers with >!hidden!<. Use Markdown Mode in the editor for it to render.

Reddit formatting previewer

Load an example
How it looks on Reddit
u/you· 1 hour ago

Formatting works here — try editing this.

The twist is and the source is a comment from 2019.

  • old plan new plan
  • inline code stays literal

Quoting the person above

Link to the wiki

Rendered in your browser — nothing is posted or uploaded. This approximates new Reddit's renderer: standard Markdown plus Reddit's spoiler and superscript, with raw HTML and LaTeX shown as literal text the way Reddit shows them. Task lists and footnotes render on this site but not on Reddit, so avoid them in comments.

Bold and italic

Reddit italics and bold follow standard Markdown, and Reddit accepts both spellings of each. Wrap text in one asterisk or one underscore for italic, two for bold, and three for bold italic. *italic* and _italic_ produce the same result, so pick whichever is easier to type around the words you are emphasising.

Underscores are the safer choice when your text already contains asterisks, and asterisks are the safer choice inside file paths or variable names, because Reddit does not treat an underscore in the middle of a word as emphasis — snake_case_name stays intact. There is no underline: Reddit reserves that styling for links, and __text__, which means underline in some other apps, means bold here.

Syntax
**bold text** and __also bold__

*italic text* and _also italic_

***bold italic*** for both at once

snake_case_name is left alone
On Reddit

bold text and also bold

italic text and also italic

bold italic for both at once

snake_case_name is left alone

Gotcha: If nothing happens, you are almost certainly typing into the rich text editor rather than the Markdown editor — it inserts a backslash before your asterisks and shows them literally. To print a real asterisk on purpose, escape it: \*not italic\*.

Strikethrough

Reddit strikethrough uses two tildes on each side of the text. It works in comments, in text posts and inside lists and quotes, and it is the conventional way to show that you changed your mind mid-thread without deleting what you originally wrote — which everyone reading the replies underneath you will thank you for.

Syntax
~~This was wrong~~ and here is the correction.

- ~~Sold~~ still available
- Delivery on Friday
On Reddit

This was wrong and here is the correction.

  • Sold still available
  • Delivery on Friday

Gotcha: One tilde does nothing: ~text~ renders as literal tildes. Do not leave spaces just inside the markers either — ~~ text ~~ will not strike through.

Spoilers

The Reddit spoiler tag is >!like this!<: an angle bracket and an exclamation mark before the text, then the same pair reversed after it. Reddit blacks the text out and reveals it when a reader clicks or taps. It works in comments and in the body of a text post, and it can cover a single word or a whole paragraph.

Spoilers do not nest. Putting one spoiler inside another gives you a single spoiler that ends at the first closing marker, so cover the whole passage once rather than trying to layer it. Marking a whole post as a spoiler is a different feature: that is a flag you set on the post itself, which blurs its thumbnail and labels it in the feed. The inline syntax below only hides the text you wrap.

Syntax
The twist is >!the narrator was the villain!< — say no more.

>!A whole line can be hidden, including **bold** and [links](https://example.com).!<
On Reddit

The twist is — say no more.

Gotcha: The markers have to hug the text. >! spaced out !< does not become a spoiler, and because the line now starts with > it is rendered as a quote instead — which is the usual explanation for a spoiler that turned into a grey bar. Try both in the previewer above.

Superscript

Reddit superscript is a caret. ^word raises everything up to the next space, which is why footnote-style asides on Reddit tend to be one long run-on word. For more than one word, wrap the text in parentheses: ^(several words at once). This is Reddit-specific and is not part of standard Markdown, so it will not carry over if you paste the same text into GitHub or a note-taking app.

Carets stack. ^^tiny raises the text twice and makes it smaller still, which is the usual way people write the quiet aside under a joke. There is no subscript on Reddit: no caret-equivalent exists for it, and the tilde syntax some other Markdown flavours use for subscript is strikethrough here.

Syntax
Confirmed by the mods^1

^(This whole parenthesised aside is raised.)

^^even ^^smaller stacked carets
On Reddit

Confirmed by the mods1

This whole parenthesised aside is raised.

even smaller stacked carets

Gotcha: The word form swallows punctuation and stops dead at a space, so ^my whole sentence raises only my. Use the parenthesised form whenever the aside runs to more than one word, and remember a caret followed by a space is just a caret.

Quotes

A Reddit quote is a line that starts with > followed by a space. Every line you want inside the quote needs its own marker, and adding a second marker — >> — nests one quote inside another, which is how a chain of replies gets quoted back through several levels.

To quote part of the comment you are replying to, copy the sentence you want, paste it, put > in front of it, then leave a blank line before your own reply. The blank line is the part people forget; without it your answer is absorbed into the quote and it reads as though the other person said it.

Syntax
> the API is limited to 60 requests a minute

It is 100 now — they raised it last month.

> > a quote inside a quote
> the reply to it
On Reddit

the API is limited to 60 requests a minute

It is 100 now — they raised it last month.

a quote inside a quote
the reply to it

Gotcha: A quote block runs until a line that does not start with >, so put a blank line between the quote and your reply. And beware pasting text that already begins with >! — that is spoiler syntax, not a quote.

Line breaks and paragraphs

Markdown's own rule has two parts: a blank line starts a new paragraph, and two spaces at the end of a line force a line break inside the same paragraph. Both work everywhere Reddit is read, including old Reddit and third-party apps.

New Reddit's editor is more forgiving and renders a single newline as a line break in most clients, which is why a comment can look correctly spaced while you write it and then arrive as one solid block for someone reading it elsewhere. Use a blank line to be safe on old Reddit and third-party apps. The toggle in the previewer above switches between the two behaviours, so you can see which of your line breaks actually survive.

Syntax
First paragraph.

Second paragraph, after a blank line.

Line one with two trailing spaces  
line two, same paragraph.
On Reddit

First paragraph.

Second paragraph, after a blank line.

Line one with two trailing spaces
line two, same paragraph.

Gotcha: Trailing spaces are invisible, so a break made with them is easy to lose when you edit the comment later. If the spacing carries meaning — a list of steps, a set of quotes — use blank lines, which nothing can strip by accident.

Lists

Bullets start with -, * or + followed by a space. Numbered lists start with a digit, a period and a space; Reddit renumbers them for you, so a list written entirely with 1. still comes out as 1, 2, 3.

Indent nested items by four spaces. New Reddit will often accept two, but four is what old Reddit's renderer expects and it works on both, so four spaces is the version worth learning. Leave a blank line before the first item of a list that follows a paragraph — without it the list can be pulled into the paragraph above.

Syntax
- First bullet
- Second bullet
    - Nested, indented four spaces
    - Another nested item

1. Step one
2. Step two
    1. A nested step
On Reddit
  • First bullet
  • Second bullet
    • Nested, indented four spaces
    • Another nested item
  1. Step one
  2. Step two
    1. A nested step

Gotcha: Not every client treats a tab as indentation, so type four real spaces. And a line like 2026. What a year becomes a numbered list — escape the period as 2026\. What a year if you meant the year.

Code

Inline code goes in single backticks and is the right choice for a file name, a flag or a single expression. For anything longer, Reddit offers two block forms. Fenced blocks — three backticks on their own line, then your code, then three more — render on new Reddit and are what the composer inserts for you.

Old Reddit does not render fenced blocks; it wants every line of the block indented by four spaces, with a blank line before it. Indented blocks render correctly on both, so a four-space block is the version that looks right for every reader. Reddit does not syntax-highlight either form, and a language identifier after the opening fence is accepted but has no visible effect.

Syntax
Run `npm install` first.

```
const answer = 42;
console.log(answer);
```

    const answer = 42;
    console.log(answer);
On Reddit

Run npm install first.

const answer = 42;
console.log(answer);
const answer = 42;
console.log(answer);

Gotcha: If a code block shows up as ordinary text with stray backticks, the reader is on old Reddit or an app that follows it. Re-indent the block by four spaces and it renders everywhere. A code block also has to be separated from the paragraph above it by a blank line.

Tables

Reddit tables are pipe tables: a header row, a divider row of dashes, then one row per line. The divider row is mandatory — it is what tells the renderer this block is a table at all — and colons inside it set column alignment: :--- for left, :---: for centre and ---: for right.

Both old and new Reddit render tables, but many third-party apps and older mobile clients do not, and a wide table is unreadable on a phone even where it does render. Keep tables to three or four narrow columns, or fall back to a list, when the thread has a mobile-heavy audience.

Syntax
| Item | Price | In stock |
| :--- | ---: | :---: |
| Cable | $9 | yes |
| Adapter | $24 | no |
On Reddit
Item Price In stock
Cable $9 yes
Adapter $24 no

Gotcha: A literal pipe inside a cell splits the cell in two; escape it as \|. Cells cannot contain line breaks either, so a table is the wrong shape for long prose.

Headings

One to six # characters followed by a space make a heading, largest first. They are genuinely useful in long text posts — a guide, a patch note, a rules post — where they give readers something to scan.

In comments they are usually a mistake. A single # renders very large next to ordinary comment text, so it reads as shouting; most communities treat bold as the comment-level equivalent of a heading.

Syntax
# Biggest heading

## Section heading

###### Smallest heading

Ordinary text below.
On Reddit

Biggest heading

Section heading

Smallest heading

Ordinary text below.

Gotcha: The space after the hashes is required, so #hashtag stays literal text rather than becoming a heading — which is usually what you wanted anyway.

Supported Formatting

Bold

Double asterisks (or __text__)

**bold text**

Italic

Single asterisks (or _text_)

*italic text*

Strikethrough

Double tildes

~~strikethrough~~

Superscript

Reddit-specific — wrap multi-word text in parentheses

^(superscript)

Spoiler

Reddit-specific — blurred until clicked

>!hidden spoiler!<

Inline Code

Single backticks

`code`

Code Block

Fenced block (or indent 4 spaces)

```
code block
```

Quote

Greater-than sign

> quoted text

Heading

Up to six # levels

# Heading

Unordered List

Dash or asterisk

- Item one
- Item two

Ordered List

Number followed by period

1. First
2. Second

Link

Standard Markdown link

[link text](https://example.com)

Table

Supported on new Reddit

| A | B |
| - | - |
| 1 | 2 |

Line Break

End a line with two spaces

line one  
line two

Markdown mode vs the rich text editor

Everything on this page depends on Reddit reading your text as Markdown, and on new Reddit that is not the default. The desktop composer opens a rich text editor with a formatting toolbar, and it escapes Markdown characters as you type, so they arrive as literal asterisks. The composer carries a control for switching to the Markdown editor — usually labelled along the lines of "Switch to Markdown Editor" or "Markdown Mode", at the edge of the composer toolbar. Switching converts what you have already typed, so it is worth doing before you start rather than after.

Old Reddit, at old.reddit.com, has no rich text editor at all: every comment box is a Markdown box, which is part of why formatting-heavy communities still write there. If a comment refuses to format on the new site, writing it on the old one is a reliable escape hatch — the comment is the same comment either way, because what Reddit stores is the Markdown source.

The official mobile apps also offer a Markdown toggle in the post composer rather than defaulting to it, and third-party apps each make their own choice, so check the composer for a formatting or Markdown switch before assuming your syntax is wrong. Whichever editor you use, a comment written in Markdown mode still renders correctly for someone reading it in a rich text client.

Old Reddit vs new Reddit differences

The two sites share most of the syntax and differ in a handful of places that account for nearly every "it looked fine when I posted it" report. Where they differ, the old-Reddit column is the safer choice, because syntax that renders on old Reddit renders on new Reddit as well.

FeatureOld RedditNew Reddit
Default editorMarkdown onlyRich text, with a Markdown option
Fenced code blocks (```)Not renderedRendered
Four-space indented codeRenderedRendered
TablesRenderedRendered
Spoilers (>!text!<)RenderedRendered
Superscript (^)RenderedRendered
Single newline as a line breakNo — needs a blank line or two spacesUsually yes
Nested list indentationFour spacesTwo often work, four always do

Third-party apps follow their own renderers and generally sit closer to old Reddit than to new. Treat anything in the New Reddit column that old Reddit does not support as unavailable to part of your audience.

Common mistakes: why is my formatting not working?

Asterisks show up literally instead of making text bold

You are in the rich text editor, which escapes Markdown as you type. Switch to the Markdown editor in the composer, or write the comment on old Reddit, which has no rich text mode.

Everything runs together into one paragraph

Put a blank line between paragraphs. New Reddit renders a single newline as a break in most clients; old Reddit and many third-party apps do not.

A code block reads as plain text with stray backticks

Fenced blocks do not render on old Reddit. Indent every line of the block by four spaces instead, with a blank line before it, and it renders on both sites.

A spoiler renders as a grey quote bar

The markers must touch the text. >!like this!< works; >! like this !< does not, and the leading > then turns the line into a quote.

A table renders as a row of pipes

The divider row of dashes under the header is required. Without it the block is not recognised as a table at all.

Superscript stops after the first word

The caret raises text only up to the next space. Wrap multi-word text in parentheses: ^(like this).

Not Supported on Reddit

  • Inline images in comments
  • Underline
  • Font colors or sizes
  • Nested spoilers
  • HTML tags
  • Task list checkboxes
  • LaTeX math
  • Footnotes

Frequently Asked Questions

Does Reddit use Markdown?

Yes. Reddit supports a Markdown variant for comments and text posts. Switch to Markdown Mode in the comment editor (the old editor uses Markdown directly). It includes standard Markdown plus Reddit-specific superscript and spoiler syntax.

How do I hide a spoiler on Reddit?

Wrap the text in >! and !<, like >!this is hidden!<. Reddit blurs the text until a reader clicks it.

How do I write superscript on Reddit?

Use a caret before the text: ^word. For more than one word, wrap it in parentheses: ^(multiple words). This is Reddit-specific and not part of standard Markdown.

Why is my Reddit formatting not working?

The most common cause is using the Fancy Pants (rich text) editor instead of Markdown Mode. Click the switch in the editor to toggle Markdown Mode. Also remember Reddit needs a blank line or two trailing spaces to create a line break.

Can I add tables on Reddit?

Yes, new Reddit renders Markdown tables using pipes and a divider row. Old Reddit and some third-party apps may not display them, so keep tables simple.

How do I strikethrough text on Reddit?

Put two tildes on each side of the text: ~~like this~~. A single tilde does nothing, and spaces just inside the markers stop it working. Strikethrough renders on both old and new Reddit.

Why does my superscript stop at the first space?

A caret raises text only as far as the next space, so ^my whole sentence raises just the first word. Wrap anything longer in parentheses — ^(my whole sentence) — and the entire phrase is raised.

How do I make a table on Reddit?

Write a header row of cells separated by pipes, then a divider row of dashes, then one row per line. The divider row is required. Add colons to it for alignment: :--- is left, :---: is centred and ---: is right.

Why is there no underline on Reddit?

Reddit has no underline syntax; underlining is reserved for links so readers can tell what is clickable. __text__ means bold on Reddit, not underline, so use bold or italics for emphasis instead.

What is the difference between a spoiler tag and spoiler text?

Inline spoiler text is the >!hidden!< syntax, which blacks out part of a comment or post. The post-level spoiler tag is a separate flag on the whole post, which blurs its thumbnail and labels it in the feed. Tagging a post does not hide anything inside its text, so a post that needs both wants both.

Related Guides