Phoenix0531-sudo/Notion_Sync

GitHub: Phoenix0531-sudo/Notion_Sync

一款基于 PySide6 的本地桌面应用,通过 Notion API 将页面和数据库导出为 Markdown 等格式,解决 Notion 内容本地持久化归档的问题。

Stars: 2 | Forks: 0

# Notion 同步 **桌面端 Notion → 本地导出 / 同步工作台 (PySide6)** [English](README.md) | [中文](README.zh-CN.md) ![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg) ![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg) Notion Sync 是一个**本地桌面应用**,它通过调用 Notion API 将页面 / 数据库导出到您的计算机(Markdown 及相关格式),并提供面向任务的同步控制。 包入口位于 `src/notion_sync/` 下;`ultimate_start.py` 是一个启动器,它会在修补 typing 的一些怪异行为后启动应用。 ## 开发初衷 Notion 在线使用体验极佳,但作为持久化的本地归档方案却不太理想。本项目将导出/同步功能统一在一个桌面外壳下(配置后,token 会存储在系统密钥环中),从而避免了使用各种临时编写的脚本。 ## 功能 - Notion API 客户端 + 同步任务模型 - 面向导出的 pipeline(根据任务配置支持 Markdown / HTML / JSON 路径) - 带有进度状态显示的任务管理器 UI - 可选的文件监听器 hook,用于本地工作流 - MVC 风格的目录划分:`controllers/`、`models/`、`services/`、`ui/` ## 安装 ``` git clone https://github.com/Phoenix0531-sudo/Notion_Sync.git cd Notion_Sync pip install -r requirements.txt ``` 您需要一个 Notion **内部集成 token**,并与该集成共享目标页面。 ## 使用说明 ``` python ultimate_start.py # 或者,在安装后 / PYTHONPATH=src: python -m notion_sync.main ``` 1. 创建一个 Notion 集成并复制 token。 2. 与该集成共享目标页面/数据库。 3. 在 UI 中创建同步任务并选择本地输出文件夹。 ## 项目结构 ``` ultimate_start.py src/notion_sync/ main.py controllers/ models/ services/ ui/ tests/ ``` ## 注意事项 - 这不是 Notion 的官方产品 - 不支持针对所有 block 类型的完整双向 CRDT 同步 - API 的速率限制和 Notion schema 的变更可能会导致边缘情况出现问题 —— 请将其视为个人工具使用 ## 许可证 MIT。可免费用于商业用途,但需注明出处。详见 [LICENSE](LICENSE)。
标签:API集成, Notion, PySide6, 可观测性, 数据同步, 文件导出, 桌面应用, 逆向工具