一只阿木木

从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. 1. 打开Notion设置
  2. 2. 选择"导出"
  3. 3. 格式选择"Markdown & CSV"
  4. 4. 包括子页面:是
  5. 5. 下载并保存

这是你的安全网。

万一迁移搞砸了,Notion里的内容还在。


三、Notion导出操作

导出步骤

第1步:选择导出范围

你可以导出:

  • • 整个工作区(所有内容)
  • • 单个页面及其子页面
  • • 特定数据库

建议:分批导出,不要一次全导。

先导一小部分测试,确认没问题再全量导出。

第2步:导出设置

打开设置 → 导出

选项
建议设置
导出格式
Markdown & CSV
包含子页面
是
包含数据库
作为Markdown
时区
选择你的时区

第3步:等待并下载

大型工作区导出可能需要几分钟到几十分钟。

Notion会发邮件通知你下载链接。

第4步:解压文件

下载后是一个zip文件,解压。

你会看到一堆文件夹和md文件。


四、导出文件的问题(重点)

解压后你可能会傻眼:

"这是什么乱七八糟的东西?"

别慌,这是正常的。让我解释这些问题:

问题1:文件名有乱码

text

我的笔记 2f3a4b5c6d7e8f9a.md

Notion在文件名后面加了一串随机字符。

解决方案:后面会讲批量重命名的方法。

问题2:文件夹结构混乱

text

Export/
├── 我的笔记 abc123/
│   ├── 子页面1 def456/
│   │   ├── 子子页面 ghi789/
│   │   │   └── 内容.md
│   │   └── 内容.md
│   └── 内容.md
└── ...

嵌套层级可能很深,而且命名不直观。

问题3:图片是链接不是本地文件

打开导出的md文件,图片是这样的:

Markdown

![图片](https://s3.us-west-2.amazonaws.com/secure.notion-static.com/xxx)

这些链接可能会过期,而且不是本地文件。

问题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 re

def 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 requests

def 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,确实有些麻烦。

但一旦迁移完成:

  • • 你的数据完全属于你
  • • 不依赖任何云服务
  • • 纯文本格式永不过时

这是一次性的投入,换来长期的安心。

记住这个原则:

不要追求完美迁移。

内容在就行,格式慢慢调。

点赞+在看,第一时间收到更新。

Obsidian+AI 读书卡片合集系列
   读书卡片合集
Obsidian+AI 知识管理合集系列
Obsidian+AI知识管理

 AII

AI 产品经理

2025年,我对AI工程师的硬核要求清单(全技能图谱)

深度解析:京东云开源的JoyAgent,如何构建一个真正的企业级智能体平台?

我对 AI 产品经理的要求 | 2025 能力栈

AI 提示词实践合集

AI写作背后的秘密:情感爆文是如何诞生的?

九个步骤,用AI写书并赚取你的第一桶金!

为什么你的故事类文章总是缺乏吸引力?AI 写作的创作秘诀

AI 笔下的浪漫:AI 比人类创作的小说更动人?

6个步骤,一步步教你仿写董宇辉风格的城市名片文案,精准传达城市魅力

如何让文案更具说服力?一步步仿写董宇辉文案,让你的文字更有力量!

1个简单案例,让AI变得更有人情味

1个案例,让你的提示词告别平淡无奇

项目经理的时间管理秘籍,你真的了解吗?

项目经理如何轻松管理海量资料?AI工具的秘密在这里

AI提示词背后的秘密,项目经理你真的了解吗?

Image

松花酿酒,春水煎茶。

眉上风止,见字如晤。

一只阿木木