📌
我的爱发电主页: 爱发电delta1037
功能:
  • 将指定的notion页面和子页面备份为本地的markdown文件。
    • 子页面递归下载
    • 图片下载和本地链接重定位
注意:
  • 备份的内容不能恢复到Notion中(这是另外的价钱,可以做但没必要)
  • 离线目录可以自由编辑(Typora可以打开目录;Obsidian也可以打开,但是表格里的某些富文本无法渲染)
  • 备份的内容中图片和文件的命名优先级:Caption > (文件名称:图片没有解析名称) > id
  • 空页面会备份
一些可参考链接:(教程:B站delta1037;源码:Github delta1037;QQ交流群:917606741)

一、版本介绍

目前的备份版本有以下两个类型:
其中gui版本是图形界面版本,terminal版本是命令窗版本
这两种的区别是:
  • 图形界面版本打开(运行)是一个图形界面,点击开始就可以备份
  • 命令窗版本打开(运行)就可以备份
💡
由于命令窗版本启动后就可以开始备份,所以该版本可以配置自动化备份(填写一个Window的定时任务配置即可)
怎么选择:
  • 图形界面:
    • 有简单的图形界面
  • 命令窗界面:
    • 可以配置定时运行,无需干预
注意: 1、这两种运行前都需要填写好必填配置(可以用vscode打开配置文件进行json语法检查在线json语法检查2、运行时关闭全局代理

二、使用说明

2.0 Token

  • token创建
  • 添加token
⚠️
注意:当前添加token的位置在页面右上角三个点里的connection块里
notion image

2.1、配置

填写配置:配置文件名称是config.json,配置文件样例和字段含义说明如下:
💡
Q:同一个Notion账户为什么需要备份多个页面? A: 1、该备份工具使用Notion官方API获取页面数据,官方API对调用速率有要求,所以一次备份的页面量最好不要太多(太多的话目前也没遇到问题),可以对页面拆分备份,一次只备份其中有更新的一部分 2、大部分时候主页里的一些页面不会继续更新也就不需要重新备份,所以可以对主页里面的页面进行拆分,单独进行备份

2.2.1 字段解释

注意其中以*开头的参数是必填项(粉红色背景),以-开头的参数是选填项(蓝色背景),其它可了解
  • *backup_type:选择备份类型(单页面或者多页面,接下来只配置多页面或者单页面的部分就可以,不需要全都填写
单页面备份的配置字段:
  • *backup_token:notion官方API token(该token只需要读权限即可,获取方式参考备份教程视频
  • *page_id:需要备份的notion页面(注意token需要在该页面有读权限
  • -page_type:备份的页面类型(page/database,取决于你的page_id是从page的链接里拷贝出来的,还是从database的链接里拷贝出来的
  • -dump_path:备份的位置(基于当前程序位置,相对路径
  • export_child_page:是否导出子页面(true/false,true的意思是导出所有的子页面,包括链接到的页面(链接到的页面有读权限即可导出);false表示只有page_id对应的页面导出,另外对于其中的图片或者文件是否导出会有不可控的结果
  • page_parser_type:页面解析类型(md/plain:md是markdown格式,plain是纯文本格式,page默认是markdown,填错时会选择默认值并且不提示
  • db_parser_type:数据库解析类型(md/plain:md是markdown格式,plain是纯文本格式,database默认是plain,填错时会选择默认值并且不提示
  • db_insert_type:数据库嵌入类型(content/link,content是将数据库作为内容嵌入到原始位置,link是将数据库作为链接嵌入到原始位置
多页面备份的配置字段:
  • *backup_token:导出页面需要invite此token(该token只需要读权限即可,获取方式参考备份教程视频
  • *backup_info_token:参数配置和备份日志页面需要invite此token(该token需要读写修改权限,谨慎invite
  • *backup_list_id:导出页面参数数据库的id(包含了所有需要备份页面的参数,参数解释见单页面备份的配置字段,基本一致,可以任意新增字段,但是修改现有的字段名需要和backup_list_map中的映射表同步修改
  • *backup_log_id:备份日志数据库的id(包含了备份的历史记录,不需要人为修改
  • backup_list_map:导出页面参数数据库字段映射表(如果是直接duplicate的多页面备份模板,未修改数据库字段则不需要修改
  • backup_log_map:备份日志数据库字段映射表(如果是直接duplicate的多页面备份模板,未修改数据库字段则不需要修改
  • auto_check_off:备份后是否自动勾掉备份页面上选择备份的内容(true是自动勾掉,false是不勾掉)
注意: 1、这两类(多页面和单页面备份)都需要填写好必填的配置 2、单页面备份和多页面备份在重新运行时,都会覆盖同一个备份目录(即如果需要对备份到本地的文件改动,请异动到别的位置,或者修改备份的位置) 3、单页面备份的页面参数在配置文件中;多页面备份需要备份的页面参数在Notion数据库中,需要备份的页面需要手动勾选
 
其它字段:(没啥好想法就不要动)
  • use_buffer:是否启用缓存
  • debug:开启调试(出现无法复现的错误时可以使用,非专业人士勿开启,产生日志会占用大量磁盘空间
  • auto_close: 备份完成后自动关闭(在配置定时任务时,如果不需要查看终端的结果,就让它自动关了吧;该配置在图形界面版本无效
  • page_properties:Page的属性是否导出(对于数据库中的page导出时,如果选择属性导出,在开头会显示一个表格
  • datetime_formate:导出的日期时间格式
  • date_formate:导出的日期格式
    • file_with_link:外部链接是否尝试下载对应的内容(false表示下载外部链接内容;true表示不下载外部链接内容
    • color_theme:导出字体、背景(文字背景和数据库标签背景)颜色样式(可选default、light、dark、markdown、self_define,其中markdown是对所有的颜色使用高亮渲染==text==;self_define是自定义颜色,需要同步修改your_color_theme字段
    • your_color_theme:主题配置块(f开头的是字体颜色,b开头的是文字背景颜色,d开头的是数据库标签背景颜色
    • backup_root_path:备份路径(可填绝对路径或者留空,留空表示使用当前软件目录

    2.2.2 多页面配置参数数据库

    对于多页面的备份,备份参数的来源是notion中的一个Database,示例和模板如下(选中文版本):
    notion image
    模板使用注意: 1、可随意新增字段/列(不与现有的字段(列)名冲突即可) 2、修改数据库中的字段(列)名,配置中的backup_list_map或者backup_log_map这两个字段(列)映射表需要同步修改

    2.2.3 视频参考

    注意上述的配置是将单页面和多页面综合起来的(之前是分离的,视频也是分离时录制的),但是配置过程基本不变(除了token的名称有变化)
    当你的单页面或者多页面运用的熟练之后(手动点击可以正常运行,即配置填写的没有问题),就可以选择是否进行定时自动备份了,下面是一份定时备份配置的教程:

    2.3、运行

    • 你如果拿到的是一个exe可执行文件(QQ群917606741内的Notion备份文件夹),那么在配置完成之后点击即可开始运行了。
    • 你也可以下载源代码使用pyinstaller打包一个点击即运行的exe(或者其它平台);或者直接在终端里运行脚本(py notion_backup_terminal.py)(见三、自行打包
    备注: 1、如果你在dump.log中发现以[ISSUE]开头的日志,可以在此项目中提交issue(或者向QQ群917606741告知),并向Email:geniusrabbit@qq.com发送客户端目录下的dump.log注意删除其中的token部分 2、如果你发现备份下来的页面有内容丢失或者错误的问题,可以在此项目中提交issue(或者向QQ群917606741告知)

    2.4、输出说明

    备份位置下的结构为:
    该目录可以直接用Typora打开,或者用Obsidian打开。

    三、自行打包

    群内的文件夹更新的都是exe(Window系统适用),如果有朋友需要在MacOS上运行,可以自行按照如下的步骤进行打包。
    ⚠️
    小白谨慎操作!!

    3.1 下载源代码

    源代码链接如下:
    notion-export-client
    delta1037Updated Apr 21, 2026
     
    可以打包的几个文件:(在下载的文件夹的根目录里)
    这两个文件分别对应了上面两个版本(图形界面版本和命令行界面版本)

    3.2 配置环境

    1、检查python环境:(有就行,最好3.7以上)
    2、环境管理适用virtualenv工具,安装环境工具:
    3、使用虚拟环境
    4、安装必要的包(环境激活的状态下

    3.3 打包

    对于上面每一个可以打包的文件,在开头都有类似如下的一段代码:
    其中的打包代码部分,就是打包的指令。对于上述的实例,打包代码就是pyinstaller -F -c -i notion-dump.ico notion_backup_terminal.py -p api/notion_dump.py -p api/notion_dump_api.py -p api/backup_info.py,配置好代码运行环境之后,在终端里运行这段代码后即可。
     
    当运行完成之后,dist文件夹里就是点击即可运行的软件了~

    四、项目结构

    • api/backup_info.py: 备份页面清单管理(修改清单备份状态,自动新增备份历史记录)
    • api/notion_dump_api.py: 对notion-dump-kernel下载的文件重新组合位置并对文件中的链接(子页面、图片、文件)之类的重新定位
    • api/notion_dump.py:选择多页面或者单页面备份
    • notion_backup_terminal.py:命令行黑窗版本
    • notion_backup_gui.py:一个极其简单的图形界面版本(点击开始即可运行)
     

    五、附录

    5.1 概述

    👋
    支持的块类型

    5.2 开发进度

    页面中的块:
    emble
    video
    数据库中的属性:
    数据库中的Page新增头部表格
    数据库新增relation字段
    数据库新增rollup字段
    数据库新增函数字段
     
     
     
    Loading...