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
 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.
Pasted double asterisks convert to bold text. Typing ** does NOT work — Notion's editor is WYSIWYG.
**bold text**Single asterisks convert to italic. Underscores _italic_ also work on paste. Notion uses Ctrl+I for italic while typing.
*italic text*Single tilde on each side converts when pasted. Typing ~text~ does NOT work in the editor — use Ctrl+Shift+S instead.
~strikethrough~Backticks convert to a monospaced inline code span. Works on paste only, not while typing.
`inline code`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.Links
Standard Markdown link syntax converts to a Notion link when pasted. Bare URLs on their own line become page bookmarks, not inline links. You can also select text and press Ctrl/Cmd + K to create a link while typing.
Standard Markdown link syntax converts to a Notion link on paste. You can also select text and press Ctrl+K to link while typing.
[display text](https://example.com)A bare URL on its own line becomes a page bookmark on paste. Not an inline link.
https://example.comLists
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.
Single dash, space, then text converts to a bullet list. Asterisks also work for bullets on paste.
- item one
- item two
- item threeNumber-period-space converts to a numbered list. Notion auto-increments on Enter.
1. first item
2. second item
3. third itemMarkdown 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 doneTab (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.
Single # becomes a Notion page title (if pasted on the first line) or Heading 1 block. Notion supports H1, H2, H3 only.
# Heading 1Two # becomes a Toggle heading or plain heading (depending on Notion's current layout).
## Heading 2Three # becomes a Heading 3. H4–H6 do not exist in Notion — four or more # paste as plain text with literal hashes.
### Heading 3Blockquotes
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.
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.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.
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";
}
```/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.
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.
| Command | Block created | Markdown equivalent |
|---|---|---|
/h1 | Heading 1 | # |
/h2 | Heading 2 | ## |
/h3 | Heading 3 | ### |
/bullet | Bulleted list | - |
/num | Numbered list | 1. |
/to-do | To-do list | - [ ] |
/code | Code block | ``` |
/quote | Callout block | > |
/divider | Divider | --- |
/table | Table block | None (use /table directly) |
/page | Sub-page | None (Notion-specific) |
/link | Embed link | <link> (Notion's embed, not Markdown) |
/image | Image block | None (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

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 / Feature | Works in Notion? | Notes |
|---|---|---|
| **bold** | Yes | Converts on paste. Notion's WYSIWYG editor also supports Ctrl/Cmd+B. |
| *italic* | Yes | Converts on paste. Also Ctrl/Cmd+I. |
| _underline_ | No | Notion does not support Markdown underline. Use Ctrl/Cmd+U or select text and use the formatting toolbar. |
| ~strikethrough~ | Yes | Single tilde converts on paste. Notion editor has Ctrl+Shift+S. |
| `inline code` | Yes | Backticks convert on paste. Also Ctrl/Cmd+E. |
| ``` code blocks ``` | Yes | Fenced code blocks with language hints convert. Notion supports syntax highlighting for ~30 languages. |
| [text](url) links | Yes | Standard link syntax converts on paste. Notion also has Ctrl/Cmd+K for selected text. |
| ![]() images | No | Image syntax does NOT paste. You must drag images in, copy/paste from the clipboard, or use /image. |
| - Bulleted lists | Yes | Asterisks or dashes convert to bullet lists. |
| 1. Numbered lists | Yes | Number-period-space converts to numbered lists. |
| - [ ] Task lists | Yes | Markdown checkbox syntax (- [ ]) converts to Notion to-do blocks. |
| # Heading 1–3 | Yes | H1, H2, H3 convert on paste. Notion does not have H4, H5, or H6. |
| #### Heading 4+ | No | Four or more # render as plain text with literal hashes. |
| > Blockquotes | Yes | Converts to a Notion callout block (gray, not semantic quote). |
| --- Dividers | Yes | Three hyphens convert to a divider block. |
| | Tables | | No | Notion does NOT support Markdown table syntax on paste. You must create a /table block manually or paste from Excel/Sheets. |
| [^1] Footnotes | No | Footnotes do not exist in Notion. Paste as plain text. |
| HTML tags | No | Inline HTML is stripped on paste. Notion does not support HTML pass-through. |
| ~~strikethrough~~ | Partial | Two tildes (GFM style) sometimes render as strikethrough on paste, but single tildes are more reliable. |
| $math$ | No | Notion's native editor does not support LaTeX math. Available only in Notion AI or via inline equations (not Markdown). |
| ```mermaid | No | No Mermaid rendering. Notion has no diagram support. |
| [[wikilinks]] | No | Wikilinks render as plain text. Notion has its own page-link system using @ for mentions or [[ for page links (but not Markdown). |
| ==highlight== | No | Double 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 (``). 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: