从Notion迁移到Obsidian:完整踩坑指南
从Notion迁移到Obsidian:完整踩坑指南
关键词:Notion迁移Obsidian、笔记软件迁移、Notion导出、Obsidian入门、笔记迁移、数据导出、Markdown转换
每周都有人问我:
"我用了两年Notion,想换Obsidian,但笔记太多了不知道怎么迁移。"
"导出的文件乱七八糟,格式全崩了。"
"迁移到一半放弃了,太痛苦了。"
我特别理解。
两年前我也从Notion迁移到Obsidian,踩了无数坑。
第一次迁移失败,花了一整天,最后放弃了。
第二次我研究了方法,3个小时顺利完成。
今天把完整的踩坑指南分享出来,帮你避开我踩过的所有坑。
一、迁移前先想清楚:你真的要换吗?
在讲方法之前,先问自己一个问题:
为什么要从Notion换到Obsidian?
如果只是因为"听说Obsidian更好",建议你再想想。
Notion的优势
• 数据库功能强大 • 多人协作方便 • 网页端随时访问 • 上手简单
Obsidian的优势
• 本地存储,数据在自己手里 • 双链和知识图谱 • 高度可定制 • Markdown纯文本,永不过时
什么情况该迁移?
• 你越来越担心数据安全和隐私 • 你需要强大的双链和知识网络 • 你想要本地存储,不依赖网络 • 你受够了Notion的加载速度
什么情况不该迁移?
• 你重度使用Notion的数据库功能 • 你需要和团队协作 • 你的笔记主要是任务管理 • 你不想折腾
想清楚了再动手。
迁移是有成本的,确保收益大于成本。
二、迁移前的准备工作
决定迁移了,先做好准备。
准备1:整理Notion内容
迁移之前先在Notion里做个大扫除:
删除不需要的内容:
• 废弃的页面 • 测试内容 • 过时的笔记
简化数据库结构:
复杂的数据库迁移会很麻烦。
考虑把不必要的列删掉,把关系简化。
处理嵌入内容:
Notion里嵌入的外部内容(视频、推文等)导出时会丢失。
提前把重要的嵌入内容转成可保存的格式。
准备2:了解Notion的导出限制
Notion导出有一些已知问题:
有心理准备,迁移不会完美。
准备3:备份当前Notion
导出一份完整备份:
1. 打开Notion设置 2. 选择"导出" 3. 格式选择"Markdown & CSV" 4. 包括子页面:是 5. 下载并保存
这是你的安全网。
万一迁移搞砸了,Notion里的内容还在。
三、Notion导出操作
导出步骤
第1步:选择导出范围
你可以导出:
• 整个工作区(所有内容) • 单个页面及其子页面 • 特定数据库
建议:分批导出,不要一次全导。
先导一小部分测试,确认没问题再全量导出。
第2步:导出设置
打开设置 → 导出
第3步:等待并下载
大型工作区导出可能需要几分钟到几十分钟。
Notion会发邮件通知你下载链接。
第4步:解压文件
下载后是一个zip文件,解压。
你会看到一堆文件夹和md文件。
四、导出文件的问题(重点)
解压后你可能会傻眼:
"这是什么乱七八糟的东西?"
别慌,这是正常的。让我解释这些问题:
问题1:文件名有乱码
text
我的笔记 2f3a4b5c6d7e8f9a.mdNotion在文件名后面加了一串随机字符。
解决方案:后面会讲批量重命名的方法。
问题2:文件夹结构混乱
text
Export/
├── 我的笔记 abc123/
│ ├── 子页面1 def456/
│ │ ├── 子子页面 ghi789/
│ │ │ └── 内容.md
│ │ └── 内容.md
│ └── 内容.md
└── ...嵌套层级可能很深,而且命名不直观。
问题3:图片是链接不是本地文件
打开导出的md文件,图片是这样的:
Markdown
这些链接可能会过期,而且不是本地文件。
问题4:Notion特有语法
有些Notion特有的格式不能直接在Obsidian用:
Markdown
{% callout %}
这是Notion的提示框
{% endcallout %}@提及某人
问题5:数据库变成一堆散文件
一个Notion数据库,导出后变成:
text
我的数据库/
├── 条目1 abc.md
├── 条目2 def.md
├── 条目3 ghi.md
└── ...数据库的视图、筛选、排序全丢了。
五、清理和转换(核心步骤)
现在来解决这些问题。
步骤1:批量清理文件名
去掉文件名里的随机字符。
方法A:使用脚本(推荐)
如果你会用命令行,这是最快的方法。
创建一个Python脚本clean_names.py:
Python
import os
import redef clean_filename(path):
for root, dirs, files in os.walk(path, topdown=False):
for name in files + dirs:
# 匹配并删除末尾的随机字符串
new_name = re.sub(r'\s+[a-f0-9]{32}', '', name)
new_name = re.sub(r'\s+[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}', '', new_name)
if new_name != name:
old_path = os.path.join(root, name)
new_path = os.path.join(root, new_name)
os.rename(old_path, new_path)
print(f'{name} -> {new_name}')
# 使用:把 'your_export_folder' 换成你的导出文件夹路径
clean_filename('your_export_folder')
运行:python clean_names.py
方法B:使用批量重命名工具
Mac推荐:Renamer
Windows推荐:Bulk Rename Utility
用正则表达式匹配并删除随机字符。
方法C:手动清理(文件少的情况)
如果只有几十个文件,手动改也行。
步骤2:下载图片到本地
Notion导出的图片是在线链接,需要下载到本地。
方法A:使用脚本
Python
import os
import re
import requestsdef download_images(md_folder, image_folder):
os.makedirs(image_folder, exist_ok=True)
for root, dirs, files in os.walk(md_folder):
for file in files:
if file.endswith('.md'):
filepath = os.path.join(root, file)
with open(filepath, 'r', encoding='utf-8') as f:
content = f.read()
# 找到所有图片链接
images = re.findall(r'!\[.*?\]\((https://.*?)\)', content)
for i, url in enumerate(images):
try:
# 下载图片
response = requests.get(url)
img_name = f"{file[:-3]}_{i}.png"
img_path = os.path.join(image_folder, img_name)
with open(img_path, 'wb') as img_file:
img_file.write(response.content)
# 替换链接为本地路径
content = content.replace(url, f"Attachments/{img_name}")
print(f"Downloaded: {img_name}")
except:
print(f"Failed: {url}")
with open(filepath, 'w', encoding='utf-8') as f:
f.write(content)
download_images('your_md_folder', 'Attachments')
方法B:使用Obsidian插件
有些插件可以批量下载外部图片:
• Local Images Plus • Obsidian Image Downloader
步骤3:转换Notion特有语法
把Notion的语法转成Obsidian兼容的格式。
Callout转换:
Notion的:
text
{% callout %}
提示内容
{% endcallout %}改成Obsidian的:
Markdown
> [!note]
> 提示内容提及转换:
Notion的@某人,改成普通文字或者链接。
数据库表格:
CSV文件可以转成Markdown表格,或者用Dataview查询。
步骤4:整理文件夹结构
导出的结构可能不适合Obsidian的使用习惯。
重新组织成PARA结构:
text
📁 0-Inbox
📁 1-Projects
📁 2-Areas
📁 3-Resources
📁 从Notion迁移(先放这里)
📁 4-Archives
📁 Attachments(图片等附件)先把导出的内容放在一个文件夹里,慢慢整理。
六、导入Obsidian
清理完成后,导入Obsidian。
步骤1:创建新库
打开Obsidian,创建一个新的库(或者用现有库)。
步骤2:复制文件
把清理好的文件夹复制到库里。
步骤3:处理附件
确保图片路径正确:
设置 → 文件与链接 → 附件文件夹路径 → 选择你的附件文件夹
步骤4:检查和修复
打开几个导入的笔记,检查:
• 格式是否正确 • 图片是否显示 • 链接是否有效
有问题的地方手动修复。
七、迁移后的整理工作
导入完成只是开始,还需要整理。
整理1:建立链接
Notion里的页面链接在导出后可能失效。
需要手动建立Obsidian的双链。
技巧:不用一次全部做完。
在日常使用中,用到某个笔记时顺便整理和链接。
整理2:添加标签
Notion的标签可能没有完整导出。
根据内容重新打标签。
整理3:添加元数据
给重要的笔记添加YAML frontmatter:
YAML
---
title: 笔记标题
created: 2024-01-15
tags: [标签1, 标签2]
migrated_from: Notion
---migrated_from: Notion帮你标记哪些是从Notion迁移来的。
整理4:删除无用内容
迁移过程中可能产生一些垃圾:
• 空文件 • 重复文件 • 格式完全崩坏的文件
及时清理。
八、不要迁移的内容
有些Notion内容不值得迁移到Obsidian:
1. 复杂数据库
如果你有复杂的数据库(关系、公式、多视图),迁移会很痛苦。
建议:
• 继续在Notion里维护这些数据库 • 或者重新思考是否真的需要这么复杂
2. 协作内容
和团队共享的页面,迁移后别人就看不到了。
建议:保留在Notion,或者确认团队成员同意迁移。
3. 过时内容
超过一年没打开的笔记,可能已经没价值了。
建议:趁机做个断舍离,不迁移。
4. 任务管理
如果你在Notion里做任务管理,Obsidian不是最好的替代。
建议:用专业的任务管理工具(滴答清单、Things等)。
九、迁移时间线建议
不要试图一天完成迁移。
推荐时间线:
第1周:准备和导出
• 整理Notion内容 • 导出并下载 • 运行清理脚本
第2周:导入和基本修复
• 导入Obsidian • 修复格式问题 • 处理图片
第3-4周:逐步整理
• 建立文件夹结构 • 添加标签 • 建立重要链接
之后:日常整理
• 用到某个笔记时顺便完善 • 不用专门花时间"整理"
核心原则:增量整理,不要一次做完。
十、常见问题
Q:迁移完要不要删除Notion?
A:不建议立即删除。
保留3-6个月,确认Obsidian的内容完整,再考虑删除。
Q:有些格式实在修复不了怎么办?
A:接受不完美。
只要核心内容还在,格式问题可以在日后使用中慢慢修复。
Q:迁移完后悔了怎么办?
A:Notion数据还在,可以随时切回去。
或者两个工具并用一段时间。
Q:有没有更简单的方法?
A:有一些付费工具可以自动化迁移:
• Notion to Obsidian Converter(社区工具) • 某些付费服务
但效果因内容而异,复杂内容还是需要手动处理。
十一、最后
从Notion迁移到Obsidian,确实有些麻烦。
但一旦迁移完成:
• 你的数据完全属于你 • 不依赖任何云服务 • 纯文本格式永不过时
这是一次性的投入,换来长期的安心。
记住这个原则:
不要追求完美迁移。
内容在就行,格式慢慢调。
点赞+在看,第一时间收到更新。
AII
AI 产品经理
AI 提示词实践合集
6个步骤,一步步教你仿写董宇辉风格的城市名片文案,精准传达城市魅力
如何让文案更具说服力?一步步仿写董宇辉文案,让你的文字更有力量!
松花酿酒,春水煎茶。
眉上风止,见字如晤。
一只阿木木