<aside> 📌 我的爱发电主页: 爱发电delta1037
</aside>
功能:
注意:
一些可参考链接:(教程:B站delta1037;源码:Github delta1037;QQ交流群:917606741)
目前的备份版本有以下两个类型:
1、notion_backup_gui
2、notion_backup_terminal
其中gui
版本是图形界面版本,terminal
版本是命令窗版本
这两种的区别是:
<aside> 💡 由于命令窗版本启动后就可以开始备份,所以该版本可以配置自动化备份(填写一个Window的定时任务配置即可)
</aside>
怎么选择:
注意: 1、这两种运行前都需要填写好必填配置(可以用vscode打开配置文件进行json语法检查;在线json语法检查) 2、运行时关闭全局代理
Notion - The all-in-one workspace for your notes, tasks, wikis, and databases.
<aside> ⚠️ 注意:当前添加token的位置在页面右上角三个点里的connection块里
</aside>
填写配置:配置文件名称是config.json
,配置文件样例和字段含义说明如下:
{
"*backup_type": "single",
"single" : {
"*backup_token": "secret_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"*page_id" : "888xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"-page_type" : "page",
"-dump_path": "./dumped_pages",
"export_child_page": true,
"page_parser_type": "md",
"db_parser_type": "md",
"db_insert_type": "content"
},
"multi": {
"*backup_token": "secret_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"*backup_info_token" : "secret_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"*backup_list_id" : "888xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"*backup_log_id" : "666xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"backup_list_map": {
"page_id": "页面ID",
"page_type": "页面类型",
"dump_path": "备份位置",
"export_child_page": "递归备份",
"page_parser_type": "页面备份类型",
"db_parser_type": "数据库备份类型",
"db_insert_type": "数据库嵌入类型",
"dump_status": "备份"
},
"backup_log_map": {
"title": "时间戳",
"date": "备份时间",
"status": "备份状态",
"log": "备注"
},
"auto_check_off": true
},
"debug": false,
"auto_close": true,
"page_properties": true,
"datetime_formate": "%Y/%m/%d-%H:%M:%S",
"date_formate": "%Y/%m/%d",
"file_with_link": false,
"color_theme": "light",
"your_color_theme": {
"f_gray": "#787774",
"f_brown": "#9F6B53",
"f_orange": "#D9730D",
"f_yellow": "#CB912F",
"f_green": "#448361",
"f_blue": "#337EA9",
"f_purple": "#9065B0",
"f_pink": "#C14C8A",
"f_red": "#D44C47",
"b_gray": "#F1F1EF",
"b_brown": "#F4EEEE",
"b_orange": "#FBECDD",
"b_yellow": "#FBF3DB",
"b_green": "#EDF3EC",
"b_blue": "#E7F3F8",
"b_purple": "#F4F0F7CC",
"b_pink": "#F9EEF3CC",
"b_red": "#FDEBEC",
"d_light_gray": "#E3E2E080",
"d_gray": "#E3E2E0",
"d_brown": "#EEE0DA",
"d_orange": "#FADEC9",
"d_yellow": "#FDECC8",
"d_green": "#DBEDDB",
"d_blue": "#D3E5EF",
"d_purple": "#E8DEEE",
"d_pink": "#F5E0E9",
"d_red": "#FFE2DD"
}
}
<aside> 💡 Q:同一个Notion账户为什么需要备份多个页面? A: 1、该备份工具使用Notion官方API获取页面数据,官方API对调用速率有要求,所以一次备份的页面量最好不要太多(太多的话目前也没遇到问题),可以对页面拆分备份,一次只备份其中有更新的一部分 2、大部分时候主页里的一些页面不会继续更新也就不需要重新备份,所以可以对主页里面的页面进行拆分,单独进行备份
</aside>
**注意:**其中以*
开头的参数是必填项(粉红色背景),以-
开头的参数是选填项(蓝色背景),其它可了解
单页面备份的配置字段:
多页面备份的配置字段:
单页面备份的配置字段
,基本一致,可以任意新增字段,但是修改现有的字段名需要和backup_list_map中的映射表同步修改)注意: 1、这两类(多页面和单页面备份)都需要填写好必填的配置 2、单页面备份和多页面备份在重新运行时,都会覆盖同一个备份目录(即如果需要对备份到本地的文件改动,请异动到别的位置,或者修改备份的位置) 3、单页面备份的页面参数在配置文件中;多页面备份需要备份的页面参数在Notion数据库中,需要备份的页面需要手动勾选
其它字段:(没啥好想法就不要动)
use_buffer:是否启用缓存
debug:开启调试(出现无法复现的错误时可以使用,非专业人士勿开启,产生日志会占用大量磁盘空间)
auto_close: 备份完成后自动关闭(在配置定时任务时,如果不需要查看终端的结果,就让它自动关了吧;该配置在图形界面版本无效)
page_properties:Page的属性是否导出(对于数据库中的page导出时,如果选择属性导出,在开头会显示一个表格)
datetime_formate:导出的日期时间格式
date_formate:导出的日期格式
# 日期格式说明
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00-59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身
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:备份路径(可填绝对路径或者留空,留空表示使用当前软件目录)
对于多页面的备份,备份参数的来源是notion中的一个Database,示例和模板如下(选中文版本):
模板使用注意:
1、可随意新增字段/列(不与现有的字段(列)名冲突即可)
2、修改数据库中的字段(列)名,配置中的backup_list_map
或者backup_log_map
这两个字段(列)映射表需要同步修改
注意上述的配置是将单页面和多页面综合起来的(之前是分离的,视频也是分离时录制的),但是配置过程基本不变(除了token的名称有变化)
当你的单页面或者多页面运用的熟练之后(手动点击可以正常运行,即配置填写的没有问题),就可以选择是否进行定时自动备份了,下面是一份定时备份配置的教程:
Notion备份
文件夹),那么在配置完成之后点击即可开始运行了。py notion_backup_terminal.py
)(见三、自行打包)备注:
1、如果你在dump.log
中发现以[ISSUE]
开头的日志,可以在此项目中提交issue(或者向QQ群917606741告知),并向Email:geniusrabbit@qq.com发送客户端目录下的dump.log
,注意删除其中的token部分
2、如果你发现备份下来的页面有内容丢失或者错误的问题,可以在此项目中提交issue(或者向QQ群917606741告知)
备份位置下的结构为:
- child_pages/ # 所有的子页面(包括数据库中的子页面)
- databases/ # 所有导出的数据库(包含csv和一个markdown格式的数据库页面辅助定位文件)
- files/ # 所有的图片和文件
main.md # 下载页面id(作为主页存在)
该目录可以直接用Typora
打开,或者用Obsidian
打开。
群内的文件夹更新的都是exe(Window系统适用),如果有朋友需要在MacOS上运行,可以自行按照如下的步骤进行打包。
<aside> ⚠️ 小白谨慎操作!!
</aside>
源代码链接如下:
https://github.com/delta1037/notion-export-client
可以打包的几个文件:(在下载的文件夹的根目录里)
1、notion_backup_gui.py
2、notion_backup_terminal.py
这两个文件分别对应了上面两个版本(图形界面版本和命令行界面版本)
1、检查python环境:(有就行,最好3.7以上)
py --version
2、环境管理适用virtualenv
工具,安装环境工具:
py -3.7 -m pip install virtualenv
3、使用虚拟环境
# 创建
py -m venv path_to_env
# 激活(这是powershell里面的激活命令,MacOS和这个估计不一样,自行查一下)
.\\path_to_env\\Scripts\\Activate.ps1
# 退出
deactivate
4、安装必要的包(环境激活的状态下)
# notion页面解析模块
pip install python-dateutil
pip install notion-dump-kernel
pip install pywebview
pip install flask
pip install Flask-Bootstrap
# 打包模块
pip install pyinstaller
对于上面每一个可以打包的文件,在开头都有类似如下的一段代码:
# author: delta1037
# Date: 2022/05/01
# <mail:geniusrabbit@qq.com>
# 打包代码 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
其中的打包代码部分,就是打包的指令。对于上述的实例,打包代码就是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文件夹里就是点击即可运行的软件了~