Skip to main content

Notion Markdown Formatting

Which Markdown shortcuts Notion formats as you type, what converts when you paste, how to import and export .md files, and the syntax Notion ignores.

Short answer

Yes, Notion supports Markdown, as shortcuts rather than as a file format. Type **bold**, *italic*, `code`, or ~strike~ and Notion formats it instantly; start a line with # , - , 1. , [], or --- for headings, lists, to-dos, and dividers. Pasted Markdown converts to blocks, and .md files import and export. The catches: > makes a toggle, not a quote (type " instead), there is no Markdown source view, and links, images, and tables can't be typed as Markdown.

Markdown Shortcuts While Typing

Notion converts these as soon as you type the closing character or the space, and the Markdown characters disappear: Notion keeps the formatting, not the syntax. Inline styles work anywhere in a line; block shortcuts work at the start of a new or existing block.

Inline formatting

Inline Markdown shortcuts in Notion
TypeYou getNotes
**bold**BoldTwo asterisks on each side.
*italic*ItalicOne asterisk on each side.
`code`Inline codeOne backtick on each side.
~strike~StrikethroughOne tilde on each side, not two.
$$E=mc^2$$Inline equationTwo dollar signs on each side. Renders with KaTeX.

Block shortcuts (start of a line)

Block Markdown shortcuts in Notion
TypeYou getNotes
# + spaceHeading 1
## + spaceHeading 2
### + spaceHeading 3Heading 4 exists but has no listed shortcut; use the / menu.
- + spaceBulleted list* and + work too.
1. + spaceNumbered lista. and i. start lettered and Roman-numeral lists.
[]To-do checkboxNo space between the brackets.
> + spaceToggle listNot a quote. This is the one that surprises people.
" + spaceQuote blockA straight double quote.
---DividerThree hyphens.
```Code blockNot in Notion's shortcut list, but converts at the start of a line.

Also handy: type : plus an emoji name (:apple) for the emoji picker, @ to mention a person, page, or date, and [[ to link to another page.

Keyboard Shortcuts for Formatting

For text you've already written, select it and use a shortcut. Underline, links, and colors have no Markdown shortcut, so these are the only quick way to apply them.

BoldCmd/Ctrl + B
ItalicCmd/Ctrl + I
UnderlineCmd/Ctrl + U
StrikethroughCmd/Ctrl + Shift + S
Inline codeCmd/Ctrl + E
Add a link (or paste a URL over selected text)Cmd/Ctrl + K
Inline equationCmd/Ctrl + Shift + E
Reapply the last text or highlight colorCmd/Ctrl + Shift + H
CommentCmd/Ctrl + Shift + M
Line break inside a blockShift + Enter
Nest / un-nest a blockTab / Shift + Tab
Turn into Heading 1–3Cmd + Option + 1–3 (Mac) Ctrl + Shift + 1–3 (Win)

The same modifier pair with 0–9 turns the current block into text (0), a heading (1–3), a to-do (4), bullets (5), numbers (6), a toggle (7), a code block (8), or a page (9).

Pasting Markdown into Notion

Paste Markdown as plain text, from a code editor, a .md file, or a README, and Notion turns it into blocks. Pasting covers syntax that typing doesn't: [text](url) links, > quotes, and - [ ] task lists all convert. Notion's Help Center doesn't document paste conversion in detail, so check the result on anything long.

Paste this into a Notion page
## Weekly update

**Shipped:** the new onboarding flow.
Docs: [release notes](https://example.com)

- [x] Fix login bug
- [ ] Write the changelog

> Ship small, ship often.

---

You get native blocks

A Heading 2, a text block with bold and a link, two to-dos (one checked), a quote, and a divider.

Strikethrough uses two tildes when pasted (~~text~~), one when typed.

Images and tables are where reports disagree: Markdown Guide lists pasted image syntax and pipe tables as working, while others see tables arrive as plain text. If that happens, import the file instead (below).

Headings

#, ##, and ### followed by a space create Heading 1, 2, and 3. Notion added a fourth level, Heading 4, in March 2026 (Notion 3.4); its shortcut isn't in Notion's list, so add it from the / menu or with Turn into. There is no H5 or H6: Notion's Markdown API converts them to Heading 4. Headings can also be toggle headings that fold the blocks under them. See Markdown headings for how other apps handle levels.

Quotes, Toggles, and Callouts

This catches almost everyone coming from another Markdown app. In Notion, > plus a space is the shortcut for a toggle list. A quote block comes from a double quote plus a space, or /quote. Pasted or imported Markdown follows the normal rule, and a > line there becomes a quote.

" + space

Quote block

Set-off text with a bar on the left. The equivalent of a Markdown blockquote.

> + space

Toggle list

A collapsible block, like an HTML <details> section.

/callout

Callout

Boxed text with an emoji. No Markdown syntax; exported Markdown writes callouts as HTML.

Code Blocks and Mermaid Diagrams

Type ``` at the start of a line, use /code, or paste a fenced block. Choose the language for syntax highlighting from the label at the top left of the block. Hover the block for Copy, Wrap code, and Caption.

Mermaid in a Notion code block
flowchart LR
  Draft --> Review
  Review --> Publish

Set the code block's language to Mermaid, then switch the block between Code, Preview, and Split to see the diagram next to its source.

Notion's Markdown API uses ```mermaid for these blocks, so the language tag carries over in that direction. More in Markdown code blocks.

Math Equations

Notion renders LaTeX with KaTeX. Type $$ on both sides of an expression for an inline equation, or press Cmd/Ctrl + Shift + E to open the equation input. For a display equation on its own line, use /math (or /latex). Note the difference from GitHub and Obsidian, where $...$ is inline and $$...$$ is a block. KaTeX supports most of LaTeX plus the mhchem \ce macro for chemistry; use aligned instead of align.

Tables

There is no way to type a Markdown table in Notion. Use /table for a simple table, or create a database when you need sorting, filters, and properties. Pasting a Markdown pipe table is reported to work by some and to arrive as plain text by others; importing the .md file is the dependable route. To build a table quickly, try the Markdown table generator, and for spreadsheet data, import a CSV: it becomes a Notion database with columns as properties.

Importing Markdown Files

Go to Settings → Import → Text & Markdown, or type / on a page and search for the importer. Imports run on desktop and web, not mobile.

What you can import

.md, .markdown, and .txt, several files at once.

A zipped folder through the ZIP importer ("Convert Zip to pages") keeps the folder structure, up to 5 GB.

Headings, lists, code blocks, and standard Markdown come through.

Limits

5 MB per file on the Free plan, 50 MB on paid plans.

About 120 file imports every 12 hours.

Anchor links and tool-specific syntax, such as Obsidian wikilinks and callouts, may not import cleanly.

Just want to read a .md file? In Notion Desktop, right-click a Markdown file and choose Open With → Notion. It opens as a read-only preview in a new tab (up to ten files at once; .md, .markdown, .mdown, .mkdn, .mkd, and .rmd).

Exporting Notion to Markdown

Open the ••• menu at the top right of a page, choose Export, and pick Markdown & CSV. Turn on Include subpages to export nested pages too. You download a zip file.

  • Each page becomes a .md file; a full-page database becomes a CSV plus a .md file per database page.
  • Callouts are written as HTML, since Markdown has no equivalent.
  • For a database, you can export the current view or the default view, not all views.
  • If Windows can't open the zip because of long file paths, turn off Create folders for subpages or extract with 7-Zip.
  • To export everything: Settings → General → Export all workspace content. The download link arrives by email and expires after 7 days. Enterprise admins can disable exports.

Markdown in the Notion API

Since Notion 3.4 (March 2026), the API reads and writes page content as Markdown: POST /v1/pages accepts a markdown body, and GET / PATCH /v1/pages/:page_id/markdown read and update a page. It uses Notion's "enhanced markdown": standard Markdown plus XML-like tags for blocks Markdown can't express.

Notion enhanced markdown
# Launch plan {color="blue"}

<callout icon="🎯" color="blue_bg">
	Ship by **Friday**.
</callout>

<details>
<summary>Open questions</summary>
	Who owns QA?
</details>

Plain text with <span underline="true">underline</span>.

<callout> makes a callout, and <details> with <summary> a toggle.

{color="blue"} at the end of a block's first line sets its color; <span underline="true"> underlines.

Child blocks are indented with tabs. Headings 5 and 6 become Heading 4, and ```mermaid makes a Mermaid code block.

Spec: Enhanced markdown format.

Slash Commands

Type / anywhere for the block menu, then keep typing to filter it. These are the commands that map to Markdown elements, with the typing shortcut where one exists.

Notion slash commands and their Markdown shortcuts
CommandBlock createdTyping shortcut
/h1, /h2, /h3Heading 1–3#, ##, ### + space
/bulletBulleted list- + space
/numNumbered list1. + space
/todoTo-do list[]
/toggleToggle list> + space
/quoteQuote block" + space
/calloutCalloutNone
/divDivider---
/codeCode block```
/equationInline equation$$...$$
/math or /latexBlock equationNone
/tableSimple tableNone
/tocTable of contentsNone
/imageImage (upload, embed, or Unsplash)None
/linkLink to another page[[ or @ + page name

Common Mistakes

Most come from assuming Notion follows the same Markdown rules as GitHub or Obsidian.

Does not work

> My favorite quote

Use instead

" My favorite quote

In Notion, > followed by a space creates a toggle list. A double quote followed by a space creates a quote block. Pasted Markdown is different: a > line there is a quote.

Does not work

~~typed strikethrough~~

Use instead

~typed strikethrough~

Notion's typing shortcut uses one tilde on each side. Two tildes, the GitHub style, is the form Notion expects in pasted Markdown.

Does not work

[docs](https://example.com) typed by hand

Use instead

Select the text, press Cmd/Ctrl+K

Markdown link syntax only converts when pasted. While typing, select the text and press Cmd/Ctrl+K, or paste a URL over the selected text.

Does not work

$x^2$

Use instead

$$x^2$$

Notion's inline equation shortcut needs two dollar signs on each side, unlike GitHub and Obsidian, which use a single $ pair for inline math.

Does not work

==important==

Use instead

Select text → color menu → a background color

Notion has no Markdown highlight syntax. Pick a background color from the formatting menu; Cmd/Ctrl+Shift+H reapplies the last one you used.

Does not work

<u>underlined</u>

Use instead

Cmd/Ctrl+U

Notion doesn't render HTML, and underline has no Markdown syntax anywhere. Use the shortcut.

Quick Reference

Every common Markdown syntax and whether Notion converts it when typed or when pasted or imported.

Markdown syntax support in Notion, typed versus pasted
SyntaxTypedPastedNotes
**bold**YesYesAlso Cmd/Ctrl+B.
*italic*YesYesAlso Cmd/Ctrl+I.
`inline code`YesYesAlso Cmd/Ctrl+E.
~strike~ / ~~strike~~YesYesTyping uses one tilde; pasted Markdown uses two.
# / ## / ### headingsYesYesNotion's Markdown API maps #### and deeper to Heading 4.
- bullets, 1. numbersYesYesNest with Tab while typing.
- [ ] task listsPartialYesType [] instead; pasted - [ ] becomes a to-do.
> blockquoteNoYesTyped > makes a toggle. Type " + space for a quote.
```code block```YesYesPick the language from the label at the top left of the block.
--- dividerYesYes
$$inline math$$YesNot documentedBlock equations: /math.
[text](url) linksNoYesWhile typing, select text and press Cmd/Ctrl+K.
![alt](url) imagesNoPartialReported to become an image block on paste. Otherwise use /image.
| pipe | tables |NoPartialReports conflict on paste. Importing the .md file is more reliable.
[[wikilinks]]PartialNoTyping [[ opens Notion's link-to-page menu; pasted [[Note]] stays text.
==highlight==NoNoUse a background color from the text menu.
<u>underline</u> and other HTMLNoNoHTML is not rendered. Underline with Cmd/Ctrl+U.
[^1] footnotesNoNoNotion has no footnotes.

Frequently Asked Questions

Does Notion support Markdown?

Yes, in three ways. Markdown shortcuts format text as you type (**bold**, # heading, - list, [] to-do, --- divider), pasted Markdown is converted into Notion blocks, and you can import .md files and export pages as Markdown. What Notion lacks is a Markdown source view: it stores content as blocks, so the syntax disappears once it's converted.

Can you type Markdown directly in Notion?

Yes. Notion's Help Center lists these shortcuts: ** for bold, * for italic, ` for inline code, and ~ for strikethrough on both sides of the text; and at the start of a line, #, ## or ### plus a space for headings, -, * or + for bullets, 1. for numbered lists, [] for a to-do, > for a toggle, " for a quote, and --- for a divider. Two dollar signs on each side ($$x^2$$) make an inline equation. Links, images, and tables can't be typed as Markdown.

How do I make a blockquote in Notion?

Type " (a double quote) followed by a space at the start of a line, or use /quote. Typing > followed by a space makes a toggle list instead, which surprises most people coming from other Markdown apps. Callouts, the boxed blocks with an emoji, come from /callout.

How do I paste Markdown into Notion?

Copy the Markdown as plain text, for example from a code editor or a .md file, and paste it into a Notion page. Headings, bold and italic, links, bulleted, numbered, and task lists, quotes, code blocks, and dividers convert into blocks. If a long document or a table doesn't convert cleanly, save it as a .md file and import it with Settings → Import → Text & Markdown instead.

How do I import a Markdown file into Notion?

Go to Settings → Import → Text & Markdown, or type / on a page and search for the importer, then upload .md, .markdown, or .txt files. You can select several files at once; to keep a folder structure, zip the folder and use the ZIP importer. Files are limited to 5 MB on the Free plan and 50 MB on paid plans, imports work on desktop and web but not mobile, and anchor links and tool-specific syntax such as wikilinks may not import cleanly.

How do I export a Notion page to Markdown?

Open the ••• menu at the top right of the page, choose Export, and pick Markdown & CSV. Turn on Include subpages to get nested pages too. You get a zip file with a .md file per page and a CSV for each full-page database. Callouts are exported as HTML because Markdown has no equivalent. To export everything, go to Settings → General → Export all workspace content.

Does Notion support Markdown tables?

You can't type a Markdown table in Notion; use /table for a simple table or create a database. Pasting a pipe table is reported to create a Notion table, but results vary, so importing the .md file is the more reliable route. CSV files import as databases.

Does Notion support LaTeX math?

Yes, rendered with KaTeX. Type $$ on both sides of an expression for an inline equation, press Cmd/Ctrl+Shift+E, or use /math for a block equation. KaTeX covers most but not all of LaTeX: for example, use the aligned environment instead of align.

Can Notion render Mermaid diagrams?

Yes. Create a code block, set its language to Mermaid, and switch the block between Code, Preview, and Split to see the diagram next to its source.

Does Notion have H4, H5, and H6 headings?

Notion added Heading 4 in March 2026 (Notion 3.4). There is no H5 or H6; Notion's Markdown API converts them to Heading 4. The typing shortcuts in Notion's Help Center cover #, ## and ### only, so add Heading 4 from the / menu.

How do I highlight or underline text in Notion?

Neither has Markdown syntax in Notion. Underline with Cmd/Ctrl+U. To highlight, select the text and pick a background color from the formatting menu; Cmd/Ctrl+Shift+H reapplies the last color you used. ==highlight== and <u>underline</u> stay as plain text.