Skip to content

迁移指南

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

概述

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

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

从 Notion 迁移

方法一:官方导出

  1. 在 Notion 中打开要导出的页面
  2. 点击右上角 ...Export
  3. 选择格式:Markdown & CSV
  4. 勾选 Include subpagesCreate folders for subpages
  5. 下载并解压 ZIP 文件

方法二:使用转换工具

推荐工具:Notion2Obsidian

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

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 折叠 -->
- 点击展开
  - 隐藏内容

从 Logseq 迁移

Logseq 特点

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

迁移步骤

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

格式转换

大纲转标题

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

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

块引用

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

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

标签

markdown
<!-- Logseq -->
#标签

<!-- 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 迁移

导出数据

  1. 登录 Roam Research
  2. 点击右上角 ...Export All
  3. 选择 Markdown 格式
  4. 下载 JSON 文件

格式转换

双向链接

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

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

块引用

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

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

属性

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

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

标签

markdown
<!-- Roam -->
#标签

<!-- Obsidian(相同) -->
#标签

使用工具转换

推荐:roam-to-obsidian

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

从 Evernote 迁移

导出数据

  1. 下载 Evernote 客户端
  2. 选择要导出的笔记本
  3. 右键 → 导出为 ENEX
  4. 保存文件

使用工具转换

推荐: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 对应
笔记本文件夹
标签#标签
附件复制到附件文件夹
Web Clip外部链接
提醒任务 + 日期属性

从 Apple Notes 迁移

macOS 导出

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

使用工具

推荐:apple-notes-to-obsidian

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

手动迁移

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

# 可使用脚本提取

从 OneNote 迁移

导出数据

  1. 打开 OneNote
  2. 选择要导出的笔记本
  3. 文件导出笔记本Markdown
  4. 保存文件

使用工具

推荐:OneNoteMdExporter

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

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

格式转换

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

迁移后整理

1. 整理文件结构

迁移后的仓库/
├── 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

3. 添加 Front Matter

使用 Templater 批量添加:

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

{{content}}

4. 修复链接

python
# 修复损坏的链接
import re

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

5. 重建标签系统

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

📋 迁移检查清单

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

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

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

⚠️ 常见问题

链接失效

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

解决

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

图片丢失

问题:图片无法显示

解决

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

格式错乱

问题:Markdown 格式显示异常

解决

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

数据库丢失

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

解决

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

🔗 相关阅读

最后更新:2026年3月14日编辑此页反馈问题