Skip to main content

Notion Markdown Formatting

Notion supports Markdown on paste, not on type. Bold, italic, lists, headings, links, and code blocks all convert when you paste from another editor. Here is the complete support list and the common gotchas.

Notion is a WYSIWYG block editor. Typing **bold** literally renders as text. Paste from VS Code, GitHub, or any Markdown editor to convert.

Read this first

Three things to know before pasting Markdown into Notion

1. Paste only

Typing **bold** in Notion renders literally. Paste it from another editor to convert.

2. No tables

Markdown pipe tables do not paste. Copy from Excel or Sheets instead, or use the /table command.

3. No images

![alt](url) renders as plain text. Drag images in or use /image.

Text Formatting

Bold, italic, strikethrough, and inline code convert when pasted. Notion does NOT have real-time Markdown typing — the editor is a WYSIWYG block editor. Use keyboard shortcuts (Ctrl+B, Ctrl+I, Ctrl+E) for formatting while typing inside Notion.

Bold

Pasted double asterisks convert to bold text. Typing ** does NOT work — Notion's editor is WYSIWYG.

Paste only
**bold text**
Italic

Single asterisks convert to italic. Underscores _italic_ also work on paste. Notion uses Ctrl+I for italic while typing.

Paste only
*italic text*
Strikethrough

Single tilde on each side converts when pasted. Typing ~text~ does NOT work in the editor — use Ctrl+Shift+S instead.

Paste only
~strikethrough~
Inline code

Backticks convert to a monospaced inline code span. Works on paste only, not while typing.

Paste only
`inline code`
Tip: For real-time formatting without pasting, use Ctrl/Cmd + B (bold), Ctrl/Cmd + I (italic), Ctrl/Cmd + Shift + S (strikethrough), and Ctrl/Cmd + E (inline code). These are Notion's native shortcuts, not Markdown.

Lists

Bulleted, numbered, and to-do list syntax all convert on paste. Notion supports nested lists by indenting with four spaces (or a tab) in the Markdown source. After pasting, you can use the Tab key to toggle nesting inside Notion.

Bulleted list

Single dash, space, then text converts to a bullet list. Asterisks also work for bullets on paste.

- item one
- item two
- item three
Numbered list

Number-period-space converts to a numbered list. Notion auto-increments on Enter.

1. first item
2. second item
3. third item
To-do list

Markdown task list syntax (- [ ]) converts to Notion's to-do block on paste. This is the only way to create checkboxes via Markdown.

- [ ] task one
- [x] task done
Nested lists: Indent a list item by 4 spaces (or a tab) in the Markdown source before pasting. Notion will create nested items. After pasting, you can also use Tab (to indent) and Shift+Tab (to outdent) within the Notion editor.

Headings

Notion has three heading levels: Heading 1, Heading 2, and Heading 3. Markdown headings 1–3 (#, ##, ###) convert on paste. Heading 4 and above do not exist in Notion — four or more # render as plain text with literal hashes.

Heading 1

Single # becomes a Notion page title (if pasted on the first line) or Heading 1 block. Notion supports H1, H2, H3 only.

# Heading 1
Heading 2

Two # becomes a Toggle heading or plain heading (depending on Notion's current layout).

## Heading 2
Heading 3

Three # becomes a Heading 3. H4–H6 do not exist in Notion — four or more # paste as plain text with literal hashes.

### Heading 3

Blockquotes

Notion has no native blockquote element. When you paste a blockquote from Markdown, it converts into a Notion callout block (a block with a gray background and an icon). The callout is Notion's closest equivalent to a blockquote. Notion also has a separate /quote command, but that is also a callout block in practice — the quote style is not visually distinct from a callout.

Single blockquote

The > prefix converts to a callout block on paste (gray background with an icon). Notion has no native blockquote — it uses callout blocks as the closest equivalent.

> This is a blockquote.
Workaround: If you want a true blockquote-like appearance (no icon, no background), create a callout and then change the icon to a quotation mark and remove the background color using the block's color settings. This is the closest Notion gets to a standard blockquote.

Code Blocks

Fenced code blocks with triple backticks convert to Notion's code block on paste. You can include a language identifier after the opening fence, and Notion applies basic syntax highlighting for that language. Notion supports about 30+ languages, but the highlighting is less robust than in VS Code or GitHub.

Fenced code block

Triple backticks with a language hint convert to a Notion code block with (basic) syntax highlighting. Notion supports ~30+ languages but the highlighting is limited compared to VS Code.

```javascript
function hello() {
  return "world";
}
```
Pro tip: Notion also has a database-style code block with properties (language, caption, etc.) that you can create with /code. After creating a code block, you can select the language from the dropdown in the bottom-left corner of the block.

Dividers

Three or more hyphens on a line convert to a Notion divider on paste. You can also create a divider with the /divider slash command or by typing --- at the start of a new block.

Divider

Three or more hyphens convert to a Notion divider block on paste. The --- shortcut also works as a slash command: /divider.

---

Slash Commands

Notion's slash commands are the native way to insert blocks quickly. They are Notion's equivalent of Markdown shortcuts for typing, but they are NOT Markdown syntax. They work in real time and are the fastest way to format in Notion when you are not pasting from another source.

CommandBlock createdMarkdown equivalent
/h1Heading 1#
/h2Heading 2##
/h3Heading 3###
/bulletBulleted list-
/numNumbered list1.
/to-doTo-do list- [ ]
/codeCode block```
/quoteCallout block>
/dividerDivider---
/tableTable blockNone (use /table directly)
/pageSub-pageNone (Notion-specific)
/linkEmbed link<link> (Notion's embed, not Markdown)
/imageImage blockNone (use drag-and-drop or /image)

Common Mistakes

The five most frequent ways people get Notion Markdown wrong. These are all based on the assumption that Notion's editor is a real-time Markdown editor — it is not.

Does not work

**typing bold in real time**

Use instead

Paste from another editor, or use Ctrl+B after selecting text

Notion's editor is a WYSIWYG block editor, not a plain-text Markdown editor. Typing **bold** literally renders asterisks and text. Markdown only converts when you paste from another app.

Does not work

![alt](https://example.com/image.png)

Use instead

Drag image into Notion or use the /image command

Notion does not support Markdown image syntax on paste. The image syntax renders as plain text. Use the /image command, drag-and-drop, or paste an image from clipboard directly.

Does not work

#### Subheading level 4 | Col A | Col B | |-------|-------|

Use instead

Use Notion's built-in /table block for tables; Notion only has H1, H2, H3

Notion does not support Markdown tables via paste. H4 is a heading level that doesn't exist. Use the /table command for data tables, and /heading 3 for the deepest subheading.

Does not work

<span style='color:red'>red text</span>

Use instead

Use the color picker on the formatting toolbar for colored text

Notion strips HTML tags on paste. You cannot use inline HTML for styling. Use the native toolbar color and background-color options.

Does not work

[^1]: Footnote text

Use instead

Restructure as a callout or a separate page for references

Footnotes are not a Notion feature. The [^1] syntax renders as plain text. Workarounds: use a callout block for the reference, or create a separate linked page for footnotes.

Quick Reference

Every Markdown syntax and whether it works in Notion (on paste). The editor itself is WYSIWYG — these rules apply when you copy Markdown from another editor and paste into Notion.

Syntax / FeatureWorks in Notion?Notes
**bold**YesConverts on paste. Notion's WYSIWYG editor also supports Ctrl/Cmd+B.
*italic*YesConverts on paste. Also Ctrl/Cmd+I.
_underline_NoNotion does not support Markdown underline. Use Ctrl/Cmd+U or select text and use the formatting toolbar.
~strikethrough~YesSingle tilde converts on paste. Notion editor has Ctrl+Shift+S.
`inline code`YesBackticks convert on paste. Also Ctrl/Cmd+E.
``` code blocks ```YesFenced code blocks with language hints convert. Notion supports syntax highlighting for ~30 languages.
[text](url) linksYesStandard link syntax converts on paste. Notion also has Ctrl/Cmd+K for selected text.
![]() imagesNoImage syntax does NOT paste. You must drag images in, copy/paste from the clipboard, or use /image.
- Bulleted listsYesAsterisks or dashes convert to bullet lists.
1. Numbered listsYesNumber-period-space converts to numbered lists.
- [ ] Task listsYesMarkdown checkbox syntax (- [ ]) converts to Notion to-do blocks.
# Heading 1–3YesH1, H2, H3 convert on paste. Notion does not have H4, H5, or H6.
#### Heading 4+NoFour or more # render as plain text with literal hashes.
> BlockquotesYesConverts to a Notion callout block (gray, not semantic quote).
--- DividersYesThree hyphens convert to a divider block.
| Tables |NoNotion does NOT support Markdown table syntax on paste. You must create a /table block manually or paste from Excel/Sheets.
[^1] FootnotesNoFootnotes do not exist in Notion. Paste as plain text.
HTML tagsNoInline HTML is stripped on paste. Notion does not support HTML pass-through.
~~strikethrough~~PartialTwo tildes (GFM style) sometimes render as strikethrough on paste, but single tildes are more reliable.
$math$NoNotion's native editor does not support LaTeX math. Available only in Notion AI or via inline equations (not Markdown).
```mermaidNoNo Mermaid rendering. Notion has no diagram support.
[[wikilinks]]NoWikilinks render as plain text. Notion has its own page-link system using @ for mentions or [[ for page links (but not Markdown).
==highlight==NoDouble equals syntax does not convert. Use the background-color highlight tool or yellow callout.

Frequently Asked Questions

Does Notion support Markdown?

Notion supports Markdown on paste, not on type. When you paste Markdown-formatted text from another editor (VS Code, GitHub, etc.) into Notion, it converts the syntax to Notion's native block format. If you type **bold** directly in an empty Notion page, it will render as literal asterisks and text. For WYSIWYG formatting, use keyboard shortcuts (Ctrl+B, Ctrl+I) or the formatting toolbar. The key difference: Notion is a block editor, not a plain-text editor — its Markdown support is an import bridge, not a native format.

Can I type Markdown in Notion instead of using the toolbar?

You can use slash commands for quick formatting, but Notion does not support real-time Markdown typing. Slash commands like /code and /h1 create blocks quickly. The closest thing is Notion's Markdown paste feature: if you paste from a source that already has Markdown syntax, Notion converts it. For example, copy `## Heading` from a text editor and paste it into Notion — it becomes a Heading 2 block.

How do I paste tables from Markdown into Notion?

Notion does NOT support Markdown table syntax (pipe-delimited tables) on paste. If you try to paste a table from a Markdown file, it will paste as plain text. Instead, use one of these methods: (1) Copy from Excel or Google Sheets and paste into Notion — it converts into Notion's native table block. (2) Use the /table command and fill cells manually. (3) Import a CSV file using Notion's CSV import feature. (4) Use the Notion API for bulk table creation.

What are the most useful Notion slash commands?

/bullet — creates a bulleted list block. /num — a numbered list. /to-do — a checkbox list. /h1, /h2, /h3 — heading blocks. /code — a code block. /quote — a callout (Notion's 'quote' equivalent). /divider — a horizontal divider. /table — a simple table. /page — an embedded sub-page. /link — an embed link. You can type these anywhere in a Notion block and press the matching arrow keys to select the command. These are Notion's native shortcuts, not Markdown syntax, but they achieve the same speed.

How do I export Notion pages to Markdown?

Export from Notion's Export menu (… → Export → Markdown & CSV). Notion exports Markdown with a few caveats: (1) Tables export as HTML tables inside the Markdown, not Markdown pipe syntax. (2) Page links export as absolute URLs. (3) Callouts export as blockquotes with an icon. (4) Databases export as CSVs, not Markdown. (5) Toggle headings and folded sections export as plain headings. The export is good for backup but may need cleanup for use in other Markdown editors.

Does Notion support Markdown checkboxes or task lists?

Yes, but only when pasted. If you paste the Markdown `- [ ] task` into Notion, it converts to a to-do block. However, you cannot type `- [ ]` in real time and get a checkbox. The native way to create a to-do list in Notion is to type /to-do and press Enter, or convert a bullet list into a to-do list via the block menu (••• → Turn into → To-do list).

Can I use Markdown in Notion's inline code and math?

Notion's code blocks accept Markdown syntax on paste (```language + code), but the language identifier is cosmetic. For math: Notion supports inline (Ctrl/Cmd+Shift+M) and block equations, but these are NOT Markdown syntax — they use a custom Notion equation block. The equation syntax is LaTeX inside the equation block, but you cannot type `$...$` or `$$...$$` directly in the body to get math (unlike GitHub or Obsidian).

Why does my Markdown image link paste as plain text?

Notion does not support Markdown image syntax (`![alt](url)`). It will render as plain text. There are three ways to get images into Notion: (1) Drag and drop an image file directly into Notion. (2) Copy an image from your clipboard (e.g., from a screenshot) and paste. (3) Use the /embed command and insert an image URL or a link to the image file. Notion's embed block accepts external URLs, but not Markdown image syntax.

Learn More Markdown

Notion is one of many platforms with Markdown quirks. Compare it to other tools and syntax guides: