Skip to content

迁移指南

📦 从其他笔记软件迁移到 Obsidian 的完整指南,支持 Notion、Logseq、Roam Research、Evernote、OneNote、Apple Notes 等主流工具。

概述

Obsidian 支持标准 Markdown 格式,大多数笔记软件的数据都可以迁移。本文介绍:

  • 迁移前的准备工作
  • 各平台的迁移方法
  • 格式转换技巧
  • 迁移后的整理工作

迁移前准备

评估现有数据

迁移前先评估:

yaml
需要了解:
  数据量:
    - 笔记总数
    - 附件大小
    - 特殊格式数量
  
  特殊功能:
    - 数据库/表格
    - 嵌入内容
    - 外部链接
    - 标签系统
  
  使用习惯:
    - 笔记结构
    - 标签方式
    - 链接习惯

备份数据

迁移前务必备份:

  1. 导出原平台数据
  2. 保存到安全位置
  3. 验证备份完整性

规划迁移策略

yaml
迁移策略:
  方式一: 一次性全量迁移
    优点: 快速完成
    缺点: 可能需要大量后续整理
    适合: 数据量较小
  
  方式二: 渐进式迁移
    优点: 边迁移边优化
    缺点: 耗时较长
    适合: 数据量大、结构复杂
  
  方式三: 新旧并行
    优点: 平滑过渡
    缺点: 维护成本高
    适合: 需要长期过渡

从 Notion 迁移

Notion 是最常见的迁移来源。以下是详细步骤。

导出 Notion 数据

单页面导出

yaml
步骤:
  1. 打开要导出的页面
  2. 点击右上角「...」菜单
  3. 选择「Export」
  4. 选择格式: Markdown & CSV
  5. 勾选「Include subpages」
  6. 勾选「Create folders for subpages」
  7. 点击「Export」

批量导出

yaml
步骤:
  1. 进入 Settings & Members
  2. 选择「Settings」→「Export」
  3. 选择导出格式
  4. 等待导出完成
  5. 下载 ZIP 文件

使用转换工具

方法一:Obsidian Importer 插件

推荐工具:Obsidian Importer

  1. 在 Obsidian 安装「Importer」插件
  2. 打开命令面板,搜索 Importer: Import from Notion
  3. 选择导出的 ZIP 文件
  4. 配置转换选项

方法二:Notion to Obsidian Converter

yaml
功能:
  - 自动转换 Callout
  - 处理数据库
  - 修复链接格式
  - 转换标签

安装:
  npm install -g notion-to-obsidian

使用:
  notion2obsidian ./notion-export ./obsidian-vault

Notion 格式转换

Notion 元素Obsidian 对应
数据库Markdown 表格或 Dataview
Callout> [!note] 格式
Toggle折叠列表
Gallery无直接对应,可用卡片视图
Bookmark外部链接
Embediframe 或链接
公式块$...$$$...$$

数据库迁移方案

简单数据库 → Markdown 表格:

markdown
| 任务 | 状态 | 截止日期 |
|------|------|----------|
| 任务1 | 进行中 | 2024-02-01 |
| 任务2 | 待办 | 2024-02-15 |

复杂数据库 → Dataview:

markdown
---
type: task
status: in-progress
due: 2024-02-01
---

# 任务1

任务描述...
dataview
TABLE status, due
FROM "tasks"
WHERE status = "in-progress"

处理 Notion 特有元素

markdown
<!-- Notion Callout -->
> 💡 **提示**
> 这是 Notion 风格的 Callout

<!-- 转换为 Obsidian Callout -->
::: tip 提示
这是 Obsidian 风格的 Callout
:::
markdown
<!-- Notion Toggle -->
- <details>
  <summary>点击展开</summary>
  隐藏内容
  </details>

<!-- 转换为 Obsidian 折叠 -->
- 点击展开
  - 隐藏内容

标签迁移

yaml
Notion 标签格式: #Tag
Obsidian 标签格式: #tag

转换建议:
  - 统一使用小写
  - 使用连字符代替空格
  - 建立标签层级结构

链接迁移

markdown
Notion 链接: [[页面名]]
Obsidian 链接: [[笔记名]]

自动修复:
  - 使用插件 "Migrate to Obsidian"
  - 批量替换链接格式

从 Logseq 迁移

Logseq 特点

  • 使用 Org-mode 或 Markdown 格式
  • 大纲式笔记结构
  • 每日笔记为主

迁移步骤

  1. 打开 Logseq 设置
  2. 导出为 Markdown
  3. 将文件复制到 Obsidian 仓库

格式转换

大纲转标题

markdown
<!-- Logseq 格式 -->
- 主题
  - 子主题
    - 内容

<!-- 转换为 Markdown -->
## 主题
### 子主题
内容

块引用

markdown
<!-- Logseq -->
((block-id))

<!-- Obsidian -->
![[笔记#段落]]

TODO

markdown
<!-- Logseq -->
DONE 已完成任务
TODO 待办任务
DOING 进行中
LATER 稍后

<!-- Obsidian -->
- [x] 已完成任务
- [ ] 待办任务
- [ ] 进行中
- [ ] 稍后

使用脚本转换

python
# logseq_to_obsidian.py
import re
import os

def convert_logseq_to_obsidian(content):
    # 转换 TODO 状态
    content = re.sub(r'^DONE ', '- [x] ', content, flags=re.MULTILINE)
    content = re.sub(r'^TODO ', '- [ ] ', content, flags=re.MULTILINE)
    content = re.sub(r'^DOING ', '- [ ] ', content, flags=re.MULTILINE)
    content = re.sub(r'^LATER ', '- [ ] ', content, flags=re.MULTILINE)
    
    # 转换块引用
    content = re.sub(r'\(\(([a-z0-9-]+)\)\)', r'[[#\1]]', content)
    
    return content

# 批量处理
for file in os.listdir('logseq-notes'):
    if file.endswith('.md'):
        with open(f'logseq-notes/{file}', 'r') as f:
            content = f.read()
        
        converted = convert_logseq_to_obsidian(content)
        
        with open(f'obsidian-notes/{file}', 'w') as f:
            f.write(converted)

从 Roam Research 迁移

Roam Research 使用大纲式笔记,迁移需要特别处理。

导出数据

yaml
步骤:
  1. 点击右上角「...」
  2. 选择「Export All」
  3. 选择格式: Markdown
  4. 勾选「Include embeds」
  5. 点击「Export All」

格式转换

双向链接

markdown
<!-- Roam -->
[[笔记名称]]

<!-- Obsidian(相同) -->
[[笔记名称]]

块引用

markdown
<!-- Roam -->
((block-id))

<!-- Obsidian -->
![[笔记#段落]]

大纲结构

markdown
Roam 格式:
- 主节点
  - 子节点
    - 孙节点

Obsidian 建议:
- 主节点
  - 子节点
    - 孙节点

或使用标题:
# 主节点
## 子节点
### 孙节点

日期页面

yaml
Roam 日期格式: February 15th, 2024
Obsidian 日期格式: 2024-02-15

转换建议:
  - 使用日记插件
  - 重命名日期笔记
  - 使用 Templater 格式化

属性

markdown
<!-- Roam -->
Author:: 张三
Date:: 2024-01-15

<!-- Obsidian -->
---
author: 张三
date: 2024-01-15
---

使用转换工具

推荐:Obsidian Importer

  1. 安装 Obsidian Importer 插件
  2. 选择 Roam Research JSON 导出文件
  3. 配置转换选项

从 Evernote 迁移

Evernote 是老牌笔记软件,数据迁移相对简单。

导出数据

yaml
步骤:
  1. 打开 Evernote 客户端
  2. 选择要导出的笔记本
  3. 右键 →「导出笔记」
  4. 选择格式: .enex
  5. 保存文件

使用工具转换

推荐:Yarle

bash
# 安装 Yarle
npm install -g yarle-evernote2md

# 转换
yarle --configFile config.json

配置文件示例:

json
{
  "source": "./evernote.enex",
  "outputDir": "./obsidian-notes",
  "skipWebClips": true,
  "useHashTags": true,
  "skipCreationTime": false,
  "skipUpdateTime": false,
  "keepOriginalHtml": false
}

格式处理

Evernote 元素Obsidian 对应
笔记本文件夹
标签YAML 属性 / 标签
附件独立文件
图片本地图片
Web 剪藏Markdown 链接

从 OneNote 迁移

OneNote 迁移相对复杂,建议使用专门工具。

导出数据

yaml
步骤:
  1. 打开 OneNote
  2. 选择要导出的笔记本
  3. 文件 → 导出
  4. 选择格式: PDF 或 Word
  5. 保存文件

使用工具

OneNoteMdExporter

bash
# 安装工具
dotnet tool install --global OneNoteMdExporter

# 导出
onemd export -f "笔记本名称" -o ./obsidian-notes

中转方案

yaml
方法: OneNote → Joplin → Markdown
  1. OneNote 导入到 Joplin
  2. Joplin 导出为 Markdown

格式转换

OneNote 元素Obsidian 对应
分区文件夹
页面Markdown 文件
标签#标签
表格Markdown 表格
图片附件

注意事项

  • OneNote 手写内容需要 OCR
  • 嵌入对象可能丢失
  • 表格格式需要调整

从 Apple Notes 迁移

macOS 导出

  1. 打开 Apple Notes
  2. 选择要导出的笔记
  3. 文件导出为 PDF 或拖拽到 Finder

使用工具

推荐:Obsidian Importer

  1. 安装 Obsidian Importer 插件
  2. 选择 Import from Apple Notes
  3. 选择要导入的笔记

手动迁移

bash
# Apple Notes 存储位置
~/Library/Group Containers/group.com.apple.notes/

# 可使用脚本提取

处理特殊内容

内容处理方法
图片另存后重新链接
手写需要转录或保留图片
扫描件可能需要 OCR
嵌入链接转换为 Markdown 链接

从其他软件迁移

Bear

yaml
导出: 文件 → 导出笔记 → Markdown
转换: 基本兼容,注意处理标签格式
标签: Bear 使用 #tag#,需要改为 #tag

Ulysses

yaml
导出: 文件 → 导出 → Markdown
转换: 注意处理图片链接
附件: 需要重新组织附件文件夹

Typora

yaml
迁移: 直接复制 .md 文件
处理: 检查图片链接是否正确
配置: 调整相对路径设置

迁移后整理

1. 整理文件结构

建议的文件夹结构:

text
📁 Obsidian 库
├── 📁 00 收集箱
├── 📁 01 项目
├── 📁 02 领域
├── 📁 03 资源
├── 📁 04 归档
├── 📁 附件
├── 📁 模板
└── 📁 日记

或者:

text
迁移后的仓库/
├── inbox/              # 临时存放待整理笔记
├── archive/            # 存放不再活跃的笔记
├── templates/          # 模板文件
└── notes/              # 整理后的笔记
    ├── projects/
    ├── knowledge/
    └── daily/

2. 统一命名规范

bash
# 使用脚本批量重命名
for file in *.md; do
  # 移除特殊字符
  newname=$(echo "$file" | sed 's/[[:space:]]/_/g' | sed 's/[^a-zA-Z0-9._-]//g')
  mv "$file" "$newname"
done
yaml
命名规范:
  - 使用日期前缀: 2024-01-15-笔记标题
  - 或使用序号: 001-项目名称
  - 避免特殊字符

批量重命名工具:
  - Obsidian 插件: File Cleaner
  - 外部工具: PowerRename (Windows)

3. 添加 Front Matter

使用 Templater 批量添加:

markdown
---
title: {{title}}
created: {{date}}
tags: []
source: "从 Notion 迁移"
---

{{content}}

或者为笔记添加统一属性:

yaml
---
created: 2024-01-15
modified: 2024-01-15
tags: [标签1, 标签2]
source: Notion
status: active
---

4. 统一标签系统

yaml
标签规范化:
  - 使用小写
  - 用连字符分隔
  - 建立层级结构
  - 避免过度标签

示例:
  #项目/进行中
  #阅读/书籍
  #领域/工作

5. 修复损坏链接

使用插件检查和修复链接:

yaml
推荐插件:
  - Find unlinked files
  - Broken links checker
  - Link indexer

修复步骤:
  1. 运行链接检查
  2. 找出断链
  3. 手动修复或重命名文件
python
# 修复损坏的链接
import re

def fix_links(content):
    # 修复 Notion 风格链接
    content = re.sub(r'\[([^\]]+)\]\(([^)]+)\.md\)', r'[[\2|\1]]', content)
    
    # 修复空格问题
    content = content.replace('%20', ' ')
    
    return content

6. 重建标签系统

dataview
# 查看所有标签
LIST
FROM ""
WHERE length(file.tags) > 0
GROUP BY file.tags

📋 迁移检查清单

markdown
## 迁移前
- [ ] 备份原始数据
- [ ] 记录现有组织结构
- [ ] 列出需要保留的功能
- [ ] 确定目标仓库结构
- [ ] 记录特殊格式

## 迁移中
- [ ] 导出原始数据
- [ ] 运行转换工具
- [ ] 复制到 Obsidian 仓库
- [ ] 检查格式转换结果
- [ ] 验证数据完整性

## 迁移后
- [ ] 修复损坏的链接
- [ ] 整理文件结构
- [ ] 统一命名规范
- [ ] 添加标签和属性
- [ ] 验证图片附件
- [ ] 测试搜索功能
- [ ] 设置模板
- [ ] 配置插件和工作流
- [ ] 建立新的笔记习惯

⚠️ 常见问题

链接失效

问题:迁移后内部链接无法跳转

解决

  1. 检查文件名是否变化
  2. 使用「修复链接」插件
  3. 手动修复关键链接

图片丢失

问题:图片无法显示

解决

  1. 确保图片文件夹正确复制
  2. 检查图片引用路径
  3. 使用相对路径或绝对路径
  4. 使用插件修复链接

格式错乱

问题:Markdown 格式显示异常

解决

  1. 检查编码是否为 UTF-8
  2. 修复不兼容的语法
  3. 使用 Linter 插件格式化

数据库丢失

问题:Notion 数据库无法正确迁移

解决

  1. 导出为 CSV 格式
  2. 手动重建表格
  3. 使用 Dataview 替代

中文文件名乱码

解决

  • 确保系统编码为 UTF-8
  • 重新导出时指定编码
  • 批量重命名文件

🔗 推荐工具汇总

工具用途支持来源
Obsidian Importer官方导入插件Notion, Roam, Apple Notes 等
YarleENEX 转换Evernote
notion2obsidian格式转换Notion
OneNoteMdExporter笔记导出OneNote
Joplin中转平台多种

🔗 相关阅读