Notion Sync

🔄 Markdown 与 Notion 的双向同步利器

生产力工具榜 #6

实现 Markdown 与 Notion 的双向同步,支持数据库管理、变更监控与协作编辑,无需 npm 依赖,适合研究追踪与项目管理场景。

收藏
8.1k
安装
3.9k
版本
2.0.0
CLS 安全性认证2026-06-03
点击查看完整报告 >

使用说明

核心用法

Notion Sync 是一套基于 Node.js 的命令行工具集,通过 Notion 官方 API 实现本地 Markdown 文件与 Notion 工作空间的双向同步。核心功能包括:

1. 双向内容同步md-to-notion.js 将本地 Markdown 推送为 Notion 页面(支持标题、列表、代码块等格式);notion-to-md.js 将 Notion 页面导出为 Markdown 文件。

2. 数据库管理:支持查询数据库(query-database.js)、添加页面到数据库(add-to-database.js)、更新页面属性(update-page-properties.js),以及查看数据库结构(get-database-schema.js)。

3. 变更监控watch-notion.js 可周期性检测 Notion 页面是否被编辑,输出 JSON 格式的状态报告,支持与 cron/CI 流水线集成实现自动化监控。

4. 搜索与归档:支持按标题/内容搜索工作空间(search-notion.js)和归档页面(delete-notion-page.js)。

显著优点

  • 零外部依赖:所有脚本仅使用 Node.js 内置模块(https、fs),无需 npm install,部署极轻量。
  • 批量处理与自动限流:支持 100 块/批次的批量上传,内置 350ms 延迟自动处理 Notion API 的速率限制(~3 req/s)。
  • Token 安全升级:v2.0 强制通过 --token 参数传递密钥,避免环境变量残留风险。
  • 灵活的过滤与排序:数据库查询支持完整的 Notion 过滤语法(select/multi_select/date/checkbox/number 等)。

潜在缺点与局限

  • 属性更新限制:创建数据库页面后,Type、Tags、Status 等属性需手动在 Notion UI 中设置,API 对行内数据库的属性更新不够稳定。
  • 大文件同步慢:超过 1000 个 block 的 Markdown 文件因限流机制可能需要数分钟完成同步。
  • 格式转换边界:复杂表格、三级以上嵌套列表可能转换不完美。
  • 监控状态本地化:变更监控状态存储于本地 JSON 文件(memory/notion-watch-state.json),多机部署需自行同步状态。

适合人群

  • 使用 Notion 进行研究追踪、知识库管理的学术/咨询团队
  • 需要本地 Markdown 编辑 + Notion 协作审阅混合工作流的创作者
  • 希望通过 CI/CD 或定时任务自动化同步内容的开发者/DevOps 团队
  • 追求轻量部署、无依赖环境的极简主义者

常规风险

  • Token 泄露风险:需妥善保管 ntn_ 开头的 Integration Token,避免硬编码入版本控制;v2.0 虽改为参数传递,但仍需防止 shell history 泄露。
  • 权限管理:需手动将页面/数据库共享给 Integration,权限配置不当可能导致同步失败或数据访问不完整。
  • API 限流导致任务失败:高频自动化监控可能触发 Notion API 限流,建议监控频率不低于 5 分钟间隔。
  • 非破坏性归档delete-notion-page.js 仅设置 archived: true,非永久删除,敏感数据需额外清理策略。

安全解读

核心功能评估

notion-sync 是一套专注于 Notion 工作空间管理的命令行工具集,提供 Markdown 与 Notion 页面的双向同步能力,以及完整的数据库操作、变更监控和协作工作流支持。

核心用法

该 skill 包含 12 个独立脚本,覆盖三大场景:

1. 内容同步md-to-notion.js 将 Markdown 推送至 Notion(支持标题、列表、代码块等格式),notion-to-md.js 反向拉取转换,实现本地与云端的双向协作。

2. 数据库管理:支持数据库搜索 (search-notion.js)、带过滤/排序的查询 (query-database.js)、属性更新 (update-page-properties.js)、以及 Markdown 文件入库 (add-to-database.js)。

3. 变更监控watch-notion.js 通过对比 lastEditedTime 检测页面修改,状态持久化于本地 memory/notion-watch-state.json,可集成 cron 实现自动化监控。

显著优点

  • 零依赖安全架构:完全基于 Node.js 内置模块(https/fs/path),无 npm 供应链攻击风险,代码 1,850 行仅 12 个文件。
  • 生产级健壮性:内置 350ms 速率限制、100 块分批上传、完善的错误处理,应对 Notion API 限制。
  • Token 安全升级:v2.0 强制 --token 参数传递,弃用环境变量,降低凭证泄漏面。
  • 协作工作流完备:支持"本地编辑→推送 Notion→他人协作→监控变更→拉取更新"的完整循环。

潜在局限

  • 属性创建限制:数据库页面创建后,Type/Tags/Status 等属性需手动在 Notion UI 补充,API 对行内数据库支持不稳定。
  • 格式兼容性:复杂 Markdown(表格、>3 层嵌套列表)转换可能不完美;>1000 块大文件同步耗时较长。
  • T3 来源级别:个人开发者维护 (robansuini),长期支持依赖社区,需关注仓库更新。
  • 本地状态累积memory/notion-watch-state.json 持续存储页面元数据,需定期清理。

适合人群

  • 知识管理重度用户:需要本地 Markdown 与 Notion 无缝衔接的研究者、作家。
  • 团队协作场景:需要监控共享文档变更、自动化内容同步的项目团队。
  • 自动化工作流构建者:希望将 Notion 作为 CMS/数据源,集成 CI/CD 或定时任务的开发者。
  • 安全敏感用户:重视供应链安全、偏好零依赖工具的隐私意识用户。

常规风险提示

  • Token 暴露风险:虽优于环境变量,但 --token 仍可能出现在进程列表和 shell 历史,建议生产环境配合配置文件或密钥管理服务。
  • 第三方数据传输:所有内容经 HTTPS 传输至 Notion 云服务,敏感信息需确认符合组织合规要求。
  • API 速率限制:大规模同步可能触发 Notion 限制,脚本已做缓解但极端场景仍需注意。

---

总体评价:功能聚焦、架构简洁、安全可控的双向同步方案,适合已深度使用 Notion 且重视工具安全性的用户。

Notion Sync 内容

references文件夹
scripts文件夹
手动下载zip · 24.0 kB
API-REFERENCE.mdtext/markdown
请选择文件