md-to-notion
Transfer an Obsidian markdown file to a Notion "Tasks" database using the Notion MCP. Reads the markdown content, sets database properties (Tags, Start & End Date, Status), and creates a new page with the content. If a page with the same title already exists, asks before overwriting. Use this skill when the user wants to send/sync/transfer an Obsidian note to Notion, or copy markdown to Notion. Trigger on: "notion", "send to notion", "md to notion", "obsidian to notion", "transfer to notion", "sync to notion".
安装与使用
请根据来源仓库和你的 AI 工具说明安装此技能。先阅读技能文件和依赖要求,再添加到工作流。
查看来源 ↗使用指南技能说明
Markdown to Notion
Overview
Transfer an Obsidian markdown file to the Notion "Tasks" database via Notion MCP.
The Obsidian ![[image]] syntax is kept as plain text (Notion cannot render local images).
Prerequisites
- Notion MCP connected in Claude Code
-
$OBSIDIAN_VAULTenvironment variable set in~/.zshrc -
$NOTION_TASKS_DATASOURCE_IDenvironment variable set in~/.zshrc
Notion Database Info
- Database: Tasks
-
Data Source ID: Read from
$NOTION_TASKS_DATASOURCE_IDenvironment variable
Workflow
- Read the Obsidian markdown file
-
Parse YAML frontmatter to extract
name,createddate, andtags - Search Notion for an existing page with the same title
- If found: ask the user before overwriting (use
notion-update-pagewithreplace_content) - If not found: create a new page
- Create/Update the Notion page with properties and content
Property Mapping
| Notion Property | Value |
|---|---|
| Name | IMPORTANT: Use Obsidian filename (without .md extension), NOT frontmatter name field |
| Tags | Auto-generated from content (use existing Notion tag options when possible) |
| Start & End Date | Start = Obsidian created date, End = today's date |
| Status | "In progress" |
| Related to Areas | Leave empty (user sets manually) |
| Related Projects | Leave empty |
| Release | Leave empty |
Property Format (for notion-create-pages)
{
"Name": "page title",
"Tags": "[\"tag1\", \"tag2\"]",
"Status": "In progress",
"date:Start & End Date:start": "2026-02-15",
"date:Start & End Date:end": "2026-02-15",
"date:Start & End Date:is_datetime": 0
}
Content Rules
- Strip YAML frontmatter (
---...---) before sending content to Notion - Keep Obsidian
![[image]]syntax as-is (plain text marker) - Keep all other markdown (headers, code blocks, lists, bold, links) as-is
- Use the Notion enhanced markdown spec (fetch
notion://docs/enhanced-markdown-specbefore first use if unsure about formatting)
Line Break Rules
IMPORTANT: Notion automatically strips empty lines. To add visible blank lines, use <empty-block/> tags:
-
After paragraphs: Add
<empty-block/>on its own line after each paragraph -
After code blocks: Add
<empty-block/>on its own line after closing ``` - Before code blocks: NO empty block (Notion handles spacing automatically)
-
After image markers (
![[...]]): Add<empty-block/>on its own line after each image marker
Example format:
Paragraph text here.
<empty-block/>
Next paragraph here.
<empty-block/>
\`\`\`bash
code here
\`\`\`
<empty-block/>
More content.
Existing Tags Reference
Common tags already in the database: AI, aws, Kubernetes, EKS, terraform, claude, tools, git, linux, ebpf, Cilium, MLOps, kubeflow, OIDC, oauth, security, vpn, skills, notion, blog, study. Always prefer reusing existing tags over creating new ones.
使用示例
查看来源仓库中的使用示例与配置说明。
查看来源 ↗来源历史
- 收录时间
- 2026-03-11
- 索引更新时间
- 2026-03-11
- Branch
- main
收录与同步日期属于本站记录。源码修改历史请查看来源仓库。
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!