Complete markdown guide for Universal Notion Uploader. Covers 14 element types (headings, callouts, highlights, toggles, embeds, columns, databases), upload modes, and API constraints.
Provides markdown formatting rules for uploading structured content to Notion via Universal Notion Uploader.
/plugin marketplace add theflysurfer/claude-skills-marketplace/plugin install theflysurfer-claude-skills-marketplace@theflysurfer/claude-skills-marketplaceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Guide for LLMs generating markdown destined to be uploaded to Notion via the Universal Notion Uploader parser.
MarkdownParser (pages): AdmonitionParser, RichTextParser, TableParser, ImageParser DatabaseParser: YAML frontmatter â Notion databases with relations
# Heading 1
## Heading 2
### Heading 3
Notion API: heading_1, heading_2, heading_3
Limitations: Maximum 3 levels. H4+ NOT supported by Notion.
Workaround for H4+: Use bold paragraph
**Pseudo-Heading 4**
Content of the section...
##+ Collapsible Section
Content under this heading.
Will collapse/expand in Notion.
## Next Section (stops collapsible)
Syntax: #+, ##+, ###+ followed by title
Notion API: heading_X with is_toggleable: true and nested children
**bold** or __bold__
*italic* or _italic_
`code inline`
~~strikethrough~~
[links](https://example.com)
**[bold link](url)**
*[italic link](url)*
=={highlighted text}==
=={colored text}==blue
**bold *and italic***=={default yellow}==
=={blue text}==blue
=={red warning}==red
=={green success}==green
Colors: yellow (default), blue, red, green, purple, pink, gray, orange, brown
> [!NOTE]
> This is an important note.
> Can contain multiple lines.
Types: NOTE, TIP, IMPORTANT, WARNING, CAUTION, DANGER, INFO, EXAMPLE
!!! note "Optional Title"
Indented content.
:::note Optional Title
Content without indentation.
:::
:::tip
Content directly.
:::
Type â Emoji Mapping:
| Type | Emoji | Color |
|---|---|---|
| NOTE | đ | blue_background |
| TIP | đĄ | yellow_background |
| IMPORTANT | â | purple_background |
| WARNING | â ī¸ | orange_background |
| CAUTION | đ¨ | red_background |
| DANGER | đĨ | red_background |
| INFO | âšī¸ | blue_background |
| EXAMPLE | đ | gray_background |
DO NOT mix syntaxes in the same callout.
- Item 1
- Item 2
- Nested item (indentation)
- Item 3
Variants: -, *, +
1. First item
2. Second item
1. Nested item
3. Third item
- [ ] Uncompleted task
- [x] Completed task
- [X] Also completed (uppercase supported)
Notion API: to_do block with checked: true/false
Rich text works in list items:
- **Bold item** with *italic*
- [ ] Task with `inline code`
- Item with [link](url)
```python
def hello():
print("Hello world")
- **Always specify language** after ` ``` `
- If unknown language, use `plain text`
- No rich text in code blocks (raw text only)
- Long code (>2000 chars) auto-chunked
---
### 6. Tables
```markdown
| Name | **Status** | Count |
| ---- | ---------- | ----- |
| foo | *active* | 42 |
| bar | inactive | 0 |
Rich text in cells: Bold, italic, code inline, links supported
Recommendations:
> This is a normal quote.
> Can contain multiple lines.
Distinction with callouts:
> Simple blockquote â Notion quote block
> [!NOTE] Callout â Notion callout block
Rich text supported in quotes.


base_dir config<details>
<summary>Click to expand</summary>
Hidden content here.
Can contain **any markdown**: lists, code, tables.
</details>
Notion API: toggle block with nested children
<details> (case-insensitive)<summary>Title</summary> (line 2)</details><!-- embed: https://www.youtube.com/watch?v=VIDEO_ID -->
<!-- embed: https://figma.com/file/xxx -->
Notion API: embed or video block
Supported: YouTube, Vimeo, Figma, Google Maps, Google Drive, CodePen, GitHub Gist, Miro
<!-- columns: 2 -->
**Left Column**
Content here.
---column---
**Right Column**
More content.
<!-- /columns -->
Notion API: column_list with column children
Supported: 2, 3, 4+ columns (Notion auto-sizes equally)
---
***
___
Notion API: divider block
See [[Other Document]] for details.
Link to [[Specific Section#heading]].
Feature: resolve_internal_links: true in config
Behavior:
[[Page Name]] â Resolved to Notion page link after uploadCreate Notion databases from markdown files with YAML frontmatter.
---
type: database
name: My Database
icon: đ
description: Database description
properties:
Name:
type: title
Status:
type: select
options:
- Todo
- In Progress
- Done
Date:
type: date
Count:
type: number
Active:
type: checkbox
Related:
type: relation
database: Other Database Name
---
| Name | Status | Date | Count | Active |
|------|--------|------|-------|--------|
| Item 1 | Todo | 2025-01-15 | 42 | true |
| Item 2 | Done | 2025-01-16 | 0 | false |
Basic: title (required), rich_text, number, checkbox, date
Selection: select, multi_select
Links: url, email, phone_number
Relations: relation, rollup, formula (computed)
Link databases together:
properties:
Category:
type: relation
database: Categories DB # Name of target database
Registry: Parser maintains database registry for relation resolution.
Configure in upload_config.yaml:
mode: "mixed"
.md file = child pagemode: "hierarchical"
mode: "sequential"
features:
table_of_contents: true # Add TOC at top
page_navigation: true # Add prev/next footers
image_upload: true # Upload local images
resolve_internal_links: true # Convert [[links]]
flush_before_upload: false # Delete existing content first
- [ ] / - [x]) - BEFORE unordered lists-, *, +)1., 2.)> text)Footnotes ([^1]), Definition lists, HTML inline, Emoji shortcodes (:smile:), H4-H6 headings, Nested blockquotes (>>), Indented code blocks
| Pattern | Problem | Solution |
|---|---|---|
#### H4 | Not supported | Use ### H3 or **Bold text** |
| >12 columns | Hard to read | Split tables |
Callout without > | Breaks parsing | Every line needs > prefix |
| Code without language | Suboptimal | Always specify language |
- [ ] and - [x]This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.