Knowledge Base Organizer
自动化整理本地知识库,支持文件合并、重命名、去重与索引更新。
通过官方API将Notion页面和数据库转换为Markdown格式。
openclaw skills install @vaibhav1805/notion-to-markdown命令、参数、文件名以原文为准
使用官方 Notion API 将 Notion 页面和数据库转换为干净、可读的 Markdown 格式。
必需凭证:
NOTION_API_KEY - 你的个人 Notion 集成令牌(必需)安全最佳实践:
NOTION_API_KEY 的 .env 文件提交到版本控制系统@notionhq/client 库,并且仅与 Notion API 通信。数据不会发送至其他地方网络访问:
https://api.notion.com(官方 Notion API)检查 Node 版本:
node --version # 应为 v14.0.0 或更高版本
npm --version参见 [Notion API 设置](references/notion-api-setup.md) 获取完整说明:
notioneq_...)export NOTION_API_KEY="your_token"cd scripts
npm install单个页面:
NOTION_API_KEY=your_token node convert.js <page-id> > output.md数据库导出:
NOTION_API_KEY=your_token node convert.js <database-id> --database ./exports提取一个页面并输出到文件:
node scripts/convert.js a1b2c3d4e5f6g7h8 > my-page.md转换器自动执行以下操作:
将 Notion 数据库中的所有页面转换为文件:
node scripts/convert.js a1b2c3d4e5f6g7h8 --database ./notion-export为每个页面生成独立的 Markdown 文件:
notion-export/
├── page-one.md
├── page-two.md
└── page-three.md转换器会保留页面属性:
const result = await convertPageToMarkdown(pageId);
console.log(result.title); // 来自 Notion 的页面标题
console.log(result.markdown); // 转换后的 Markdown 内容
console.log(result.pageId); // 原始页面 ID✅ 文本、标题和段落
✅ 加粗、斜体、下划线、删除线、行内代码
✅ 链接(内部和外部)
✅ 列表(有序和无序)
✅ 带语法高亮的代码块
✅ 表格
✅ 引用和提示框
✅ 图片(以 Markdown 图像语法表示)
✅ 分隔符和分隔线
✅ 数据库属性作为前端信息(frontmatter)
**选项 1:使用 .env 文件(推荐)**
在 scripts 目录中创建 .env 文件:
# scripts/.env
NOTION_API_KEY=ntn_your_api_key_here然后正常运行转换器:
node convert.js <page-id> > output.md脚本会通过 dotenv 包自动加载 .env 中的环境变量。
选项 2:导出环境变量
永久设置于你的 shell 配置中:
# ~/.bashrc, ~/.zshrc, 或 ~/.config/fish/config.fish
export NOTION_API_KEY="notioneq_..."选项 3:为单个命令设置
NOTION_API_KEY=your_token node convert.js <page-id>安全提示: 将 .env 添加到 .gitignore,防止意外提交你的 API 密钥:
echo ".env" >> .gitignoreNotion URL 格式:
https://www.notion.so/Workspace-Name/Page-Title-abc123def456?v=xyz
↑ 页面 ID复制 ID 部分(URL 中不含连字符的部分)。
与页面 URL 相同 —— 在数据库的 URL 中查找 ID。
确保环境变量已正确导出:
export NOTION_API_KEY="notioneq_..."
echo $NOTION_API_KEY # 验证是否已设置a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6sleep 0.5 在每次转换之间修改 scripts/convert.js 以在保存前处理 Markdown 内容:
let markdown = result.markdown;
// 添加自定义处理
markdown = markdown.replace(/\n{3,}/g, '\n\n'); // 清理多余空行
fs.writeFileSync('output.md', markdown);在循环中转换多个页面:
for pageId in page1 page2 page3; do
node convert.js $pageId > "$pageId.md"
done生成的 Markdown 文件为纯文本格式,兼容以下工具:
如需高级用法,请参阅 [notion-to-md 文档](https://github.com/souvikinator/notion-to-md) 和 [Notion API 参考文档](https://developers.notion.com/)。
NOTION_API_KEY.gitignore 忽略 .env 文件已收录 1 个 Skill