Obsidian 支持通过 [[迁移助手|迁移助手插件]] 轻松地从 Notion 中迁移笔记。该工具会将你的 Notion 数据转换为持久的 Markdown 文件,你可以在 Obsidian 和许多其他应用中离线使用这些文件。 Obsidian 提供两种方式来导入 Notion 数据: 1. **API 导入**会保留你的整个工作区,包括数据库和公式,并将其转换为 [[Bases 简介|数据库]],但需要 Notion 集成令牌和网络连接。 2. **文件导入**不会保留数据库,但不需要 API 令牌或网络连接。 ## API 导入 ### 创建 Notion API 集成令牌 要通过 API 访问你的 Notion 数据,你需要一个集成令牌。此步骤大约需要 2 分钟完成。 令牌是一串以 `ntn_...` 开头的数字和字母组成的长字符串,它允许你从 Notion 下载数据。 1. 登录你的 [Notion Integrations](https://www.notion.so/profile/integrations/internal) 仪表板。 2. 选择 **New integration**。 ![[notion-integration.png#interface]] 2. 为你的集成命名,例如"Personal"。可以使用任何名称。 3. 选择你想要导出的工作区。 4. 点击 **Save** 并继续 **Configure integration settings**。 5. 在 **Configuration** 选项卡中,你的 API 令牌位于 **Internal Integration Secret** 字段。 6. 选择 **Show** 然后 **Copy**。 7. 将令牌保存到安全的地方,如密码管理器。 ![[notion-token.png#interface]] 接下来,为你的集成授予对要导入的 Notion 页面和数据库的访问权限。 1. 前往你刚创建的集成的 **Access** 选项卡。 2. 点击 **Edit access**。 3. 添加你想要导入的页面和数据库。 现在你可以使用 Obsidian 迁移助手来转换你的数据了。 ### 通过 API 导入 Notion 数据 你需要安装 Obsidian 官方的[[迁移助手]]插件,你可以[在此安装](obsidian://show-plugin?id=obsidian-importer)。 1. 打开**[[设置]]**。 2. 前往**社区插件市场**并[安装迁移助手](obsidian://show-plugin?id=obsidian-importer)。 3. 启用迁移助手插件。 4. 通过命令面板或功能区图标打开**迁移助手**插件。 5. 在 **File format** 下选择 **Notion (API)** 6. 在 **API token** 下,粘贴你从 Notion 获取的 **Internal Integration Secret**。 7. 点击 **Load** 来选择你想要导入的数据库和页面。 8. 检查并编辑导入选项。 9. 选择 **Import** 并等待导入完成 10. 大功告成! ### 限制 > [!info] API 导入是新功能 > Notion API 迁移助手是一项新功能。由于 Notion 工作区的复杂性,某些边界情况可能尚未被考虑到。如果你在转换过程中遇到问题,请[提交 bug 报告](https://github.com/obsidianmd/obsidian-importer/issues)以便我们改进。 由于 Notion API 速率限制,导入大型工作区可能需要较长时间。请耐心等待。 由于 Notion API 的限制,某些数据不可用或无法转换: - 每个数据库仅导入主视图。 - [链接数据源](https://developers.notion.com/docs/working-with-databases#additional-types-of-databases)不会被导入:*"Notion 的 API 目前不支持链接数据源。与集成共享数据库时,请确保它包含原始数据源!"* - `People` 函数:`name()` 和 `email()` - `Text` 函数:`style()` 和 `unstyle()` 此外,迁移助手会进行以下更改: - 没有子页面或数据库的页面将以 `[filename].md` 而非 `[filename]/[filename].md` 的形式导入。 - 数据库始终以名为 `[database name]` 的文件夹表示,文件夹内包含一个 `[database name].base` 文件。 ## 文件导入 文件导入是导入 Notion 数据的另一种方式。此方法不保留数据库,但不需要 API 令牌或网络连接。 ### 从 Notion 导出数据 要准备导入数据,你需要使用 Notion 的 HTML 导出格式导出整个工作区。我们建议你不要使用 Notion 的 Markdown 导出,因为它会遗漏重要数据。你必须拥有 Notion 工作区的管理员权限才能导出所有工作区内容。 1. 前往 Notion 侧边栏顶部的**[[设置]]**。 2. 在 **Workspace** 下选择 **General**。 3. 找到并选择 **Export all workspace content**。 4. 在 **Export format** 下选择 **HTML**。 5. 选择 **Include everything**。 6. 启用 **Create folders for subpages**。 7. 你将通过邮箱或直接在浏览器中收到一个 `.zip` 文件。 ![[notion-export.png#interface]] ![[notion-export-2.png#interface]] ### 导入 Notion .zip 文件 你需要安装 Obsidian 官方的[[迁移助手]]插件,你可以[在此安装](obsidian://show-plugin?id=obsidian-importer)。 1. 打开**[[设置]]**。 2. 前往**社区插件市场**并[安装迁移助手](obsidian://show-plugin?id=obsidian-importer)。 3. 启用迁移助手插件。 4. 通过命令面板或功能区图标打开**迁移助手**插件。 5. 在 **File format** 下选择 **Notion (.zip)** 6. 选择包含你要导入的 Notion 文件的 `.zip` 文件。*建议一次性导入所有 Notion 数据,以便正确解析内部链接。* 7. *可选*,选择一个导入目标文件夹。你的 Notion 页面和数据库将嵌套在此文件夹内。 8. 启用 **Save parent pages in subfolders** 以保留 Notion 的结构。*请注意,在 Notion 中你可以在文件夹中编写内容,但这在 Obsidian 中是不可行的,这些页面将作为该文件夹下的子页面添加。* 9. 选择 **Import** 并等待导入完成 10. 大功告成! ### 故障排除 如果你在从 Notion 导入时遇到问题: - 确保你在 Notion 中使用 **HTML** 作为导出格式,**而非 Markdown**。 - 如果 Obsidian 在导入过程中出现卡顿,请禁用社区插件后重试。 遇到其他问题?请搜索[迁移助手仓库](https://github.com/obsidianmd/obsidian-importer/issues)查看是否有其他人遇到过相同的问题。 #### 导入大型工作区 如果你要导入包含数 GB 数据的工作区,从 Notion 导出的文件可能包含嵌套的 `.zip` 文件。在这种情况下,你可能会看到类似以下的导入错误消息: ``` Import failed {id}.zip/{id}-Part-1.zip undefined. ``` 如果你看到此错误,可以先解压从 Notion 导出的文件,然后导入其中嵌套的 `Export-{id}-Part-1.zip` 文件。