Supported Blocks
N2O converts every Notion block type it recognises to Markdown, and nearly all of them back again. The table below is GENERATED from the converters themselves, so it cannot drift away from what the plugin actually does.
31 Notion block types are recognised. 31 come across, and 28 push back. This table is generated from the converters themselves, so it cannot disagree with them. Anything Notion adds that is not listed here arrives as an unsupported block.
| Notion block | Comes across | Pushes back | Notes |
|---|---|---|---|
audio | Yes | Yes | Downloaded into the vault when media download is on, and embedded. |
bookmark | Yes | Yes | Renders as a card with the cover and icon Notion holds. Enhanced metadata adds a description and an icon where Notion has none, which is enrichment only. |
breadcrumb | Yes | Yes | Derived. Rebuilt from the registry on every pull, so editing the visible chain in Obsidian changes nothing and pushes nothing. |
bulleted_list_item | Yes | Yes | |
callout | Yes | Yes | Emoji and colour are both preserved. |
child_database | Yes | Pull only | Pull only. A database is created in Notion, never by pushing a block. N2O writes a folder and a .base file for it. |
child_page | Yes | Pull only | Pull only. A subpage becomes a note and a link; pushing a block would not create the page. |
code | Yes | Yes | Language and caption both survive a push. The caption is recovered on parse and sent back as the block caption. |
column | Yes | Yes | |
column_list | Yes | Yes | Round-trips in full, including each column’s width ratio. Columns are NOT flattened. |
divider | Yes | Yes | |
embed | Yes | Yes | Renders a real sandboxed iframe for hosts N2O recognises, not a plain link. Unknown hosts fall back to a link. |
equation | Yes | Yes | |
file | Yes | Yes | Downloaded into the vault when media download is on. |
heading_1 | Yes | Yes | |
heading_2 | Yes | Yes | |
heading_3 | Yes | Yes | |
image | Yes | Yes | Downloaded into the vault when media download is on. Covers and large file-property images also get a smaller thumbnail for faster Bases card views. Oversized uploads are optimised on push rather than refused. |
link_preview | Yes | Pull only | Pull only, and this one is a Notion limit rather than a choice: the API cannot create a link_preview block. N2O renders a read-only card and leaves the original block untouched so a push never destroys it. |
link_to_page | Yes | Yes | |
numbered_list_item | Yes | Yes | |
paragraph | Yes | Yes | |
pdf | Yes | Yes | Downloaded into the vault when media download is on. |
quote | Yes | Yes | |
synced_block | Yes | Yes | Pushes every child. On the way in, a synced block whose source spans several children currently transcludes the first one only. |
table | Yes | Yes | Cells are compared by content, so an untouched table is not rewritten. |
table_of_contents | Yes | Yes | Derived. Rebuilt from the note’s own headings on every pull. |
table_row | Yes | Yes | |
to_do | Yes | Yes | Checked state is preserved in both directions. |
toggle | Yes | Yes | |
video | Yes | Yes | Local files get a native player. Known hosts get a sandboxed iframe. There is no poster frame or video thumbnail. |
Rich text formatting
Section titled “Rich text formatting”| Notion format | Obsidian | Round-trip |
|---|---|---|
| Bold | **text** | Yes |
| Italic | *text* | Yes |
| Strikethrough | ~~text~~ | Yes |
| Inline code | `text` | Yes |
| Underline | <u>text</u> | Yes |
| Hyperlink | [text](url) | Yes |
| Text color | <span class="n2o-fg-red">text</span> | Yes |
| Background color | <mark class="n2o-bg-blue">text</mark> | Yes |
| Yellow background | ==text== | Yes |
| Page mention | [[Page Name]] | Yes |
| User mention | @Name | ↓ |
| Date mention | 2026-01-15 | ↓ |
Not synced
Section titled “Not synced”These Notion features are not synced by N2O. Everything else Notion exposes is in the table above.
| Feature | Reason |
|---|---|
| Block-level comments | Notion API does not expose comments on blocks |
| Page-level comments | Not available via the API |
| Page history / version restore | Read-only in Notion API |
| Template blocks | Notion API does not expose template block contents. A template block arrives as an unsupported block |
| AI blocks | Not exposed via Notion API |