从其他应用导入
更新日期:2026-07-28
Plainva可以把笔记从其他笔记应用中导入进来。导入内容总是会写入你当前打开的仓库中一个由你命名的子文件夹——因此它绝不会影响仓库中的其他内容,之后你也可以像对待其他文件夹一样移动或删除这个导入出来的文件夹。
导入在两种设备上都可用。桌面端提供全部来源;在手机上可通过设置 → 维护 → 从其他应用导入找到它。手机端始终写入当前仓库的子文件夹——需要服务账号的来源(例如通过 API 的 Notion)仍然只在桌面端提供。
开始导入
有三种进入方式:
- 启动界面 → 从其他应用导入——如果你还没有任何仓库,这是入门的方式,也是切换应用时的常见情况。
- 命令面板(
Mod+P)→ 从其他应用导入… - 右键点击文件树中的一个文件夹 → 从其他应用导入…
第一步会询问你的导出内容——选择文件…或选择文件夹…,视你手头有什么而定。之后向导会说明它识别出的应用,接着由你决定导入写入的位置。随后会出现一份预览,其中包含本次运行的各项数字、此次导入的局限性,以及针对该来源的开关。在你点击开始导入之前,不会写入任何内容。
你不需要知道哪个条目对应你的导出内容。 只需选择文件,Plainva 就会识别来源——通过路径中较长的 ID 识别 Notion 导出,通过 journals/ 和 pages/ 文件夹识别 Logseq 图谱,通过 JSON 内容识别 Keep 或 Simplenote 导出。向导会说明它识别出的内容;如果识别错了,在上面的列表中修改即可,你的选择会保留下来。
导入写入的位置
每次导入只能选择两者之一——不能同时选择两个:
- 新建仓库:你选择一个空文件夹,Plainva 会在其中创建一个全新的仓库并导入进去。你已有的任何内容都不会被触碰,撤销整个导入只需删除那个文件夹即可。如果你正在试用 Plainva,这是正确的选择。
- 当前打开仓库中的子文件夹:所有内容都会放进一个新建的子文件夹里,由你来命名。你仓库的其余部分不受影响。
选择下方的目标行始终会写明确切的文件夹,因此内容会落在哪里绝不是猜测。
此次导入的选项
预览会在数字下方显示与所识别来源相匹配的开关——每个来源都会带来自己专属的开关,某个来源做不到的事,也绝不会出现在那里。开关放在这里而不是更早的位置,是因为这些问题只有在你看到即将发生的事情后才有意义;能改变数字的开关一经切换,数字就会立即重新统计。
- 保留来源中的日期(开启)——导入的笔记会带有来源的创建和修改日期。关闭此项后,所有内容都会标注为今天的日期。
- 同时导入已删除的笔记(关闭)——针对导出内容包含回收站的 Google Keep 和 Simplenote。默认情况下,位于那里的内容会留在原处;报告中会列出它们的名称。
预览显示的内容
预览是写入任何内容之前的最后一站,它会说明之后原本会令人意外的所有事项:
- 本次运行的各项数字——笔记和数据库,以及来源中若存在的附件和检查清单,
- 精确的目标文件夹,
- 这个导入器无法迁移的内容,以及压缩包中被单独跳过的每一项,
- 如果仓库已连接云端,会提示导入的笔记随后会被上传,
- 如果来源非常庞大,会提示搜索索引和首次同步之后需要一些时间。
停止运行
较大的工作区可能需要一些时间,因此导入是可以停止的:在运行过程中点击停止导入。已经进入仓库的内容会保留在那里,报告中也会说明——部分完成的导入并不是损坏的导入。和完整导入一样,撤销方式就是删除那个文件夹。
你可以导入什么
| 来源 | 你选择的内容 | 迁移的内容 |
|---|---|---|
| Notion(API) | 一个集成令牌 | 页面、文件夹层级结构、带有行、关联的数据库,21种属性类型 |
| Notion(ZIP 导出) | ZIP文件或已解压的文件夹 | 页面与文件夹结构;数据库会从旁边的 CSV 获得列和每一行的值 |
| Evernote(ENEX) | 一个或多个.enex文件 | 笔记、标签、检查清单(已勾选和未勾选)、创建/更新日期 |
| Google Keep(Takeout) | Takeout的ZIP或.json文件 | 笔记、清单、标签(作为标签)、笔记标题栏的颜色、置顶笔记(作为公告板) |
| Simplenote | 导出的.json文件 | 活跃笔记及其标签 |
| Logseq | 你的图谱文件夹 | 原样复制的文件 |
| Joplin | Markdown 导出的文件夹或 ZIP | 笔记及其笔记本、frontmatter、标签和资源 |
| Bear(TextBundle) | 导出的 .textbundle 文件夹 | 笔记及其图片 |
| Notesnook | Markdown 导出 | 笔记及其笔记本文件夹;同时归入两个笔记本的笔记只导入一次 |
| Capacities | 导出的文件夹或 ZIP | 笔记及作为 frontmatter 的属性,以及媒体文件 |
| Amplenote | 导出的 ZIP | 笔记及其 frontmatter 和图片 |
| Supernotes | Markdown 导出 | 以 Markdown 形式的卡片,以及旁边的元数据文件 |
| Heptabase | Markdown 导出 | 卡片及其 frontmatter;白板的布局不会被带过来 |
| UpNote | Markdown 导出 | 笔记及其笔记本和附件 |
| Craft | Markdown 导出 | 文档及其素材 |
| Anytype | Markdown 导出 | 对象及作为 frontmatter 的关联 |
| Standard Notes | 已解密的 JSON 备份 | 笔记及其标题和标签 |
| Workflowy / Dynalist | OPML 导出 | 每个顶层条目一篇笔记,其子项作为嵌套列表 |
| Trilium | 子树导出 | 笔记树及其附件;HTML 笔记会转换为 Markdown |
| Roam Research | JSON 导出 | 页面成为笔记,大纲成为嵌套列表;块引用会变成它们所指向的文本 |
| Reflect | Markdown 导出 | 笔记及其 wiki 链接和每日笔记 |
| TiddlyWiki | JSON 导出 | 条目作为笔记导入,带标签和日期;WikiText 保持原样 |
| Tana | 一段 Tana Paste 文本 | 每个顶层节点成为一篇笔记,其子节点保持为列表项 |
| RemNote | Markdown 导出 | 文档及其嵌套的 rem |
| HTML 文件夹 / ZIP | 一个文件夹、若干文件或一个包含 HTML 页面的 ZIP | 页面作为 Markdown 笔记,彼此之间的链接会被重新指向 |
| Markdown文件夹 / ZIP | 一个文件夹、若干文件或一个ZIP | .md文件及其文件夹结构 |
Obsidian 也在这份列表中,但它不会启动任何导入——也确实不需要。Plainva 使用的是同样的 Markdown 文件:这一项会说明这一点,并为你提供打开仓库。Wiki链接、标签、Frontmatter 和 .base 文件都能继续正常使用,你的仓库在 Obsidian 中依然可用。诚实地说:这里没有插件生态、没有 Canvas、也没有 Dataview——取而代之的是.base中的筛选功能,笔记中的插件语法则会原样保留为纯文本。
为什么没有我用的应用?
有些应用不在列表里,原因每次都不一样——这一点很重要,因为其中两个只是暂时还没有。
- OneNote — 没有能导出可用内容的批量导出。可行的途径是微软的 Graph API 加上委托登录:每个页面一次调用,每张图片再一次,还要决定一块自由排布的画布究竟该如何变成 Markdown。它被记录为将来的项目,而不是被排除——API 本身是免费的。
- Apple Notes — 苹果同样没有批量导出,读取笔记意味着对一个 SQLite 数据库做逆向工程,而且只能在 macOS 上。已有成熟的导出工具在做这件事。用其中之一导出为 Markdown,再通过 Markdown 文件夹 / ZIP 导入该文件夹。
- Zoho Notebook、Turtl、Nimbus/FuseBase — 没有值得导入的、有文档说明的导出。
- Confluence — 它的 API 返回 Confluence 自己的 storage 格式,一种围绕宏构建的 XHTML 方言,需要单独的转换器;而且它是团队 wiki,而非个人笔记。目前的途径是空间导出:将空间导出为 HTML,再通过 HTML 文件夹 / ZIP 导入该文件夹。导出页面之间的链接仍然有效。
对于列表之外的一切,路径是相同的:只要你的应用能写出 Markdown 文件,Markdown 文件夹 / ZIP 这一项就会接收它们,连同它们的文件夹结构。
Notion详解
Notion是唯一一个两种导入路径差异很大的来源。
使用集成令牌(推荐)。 在notion.so/my-integrations创建一个令牌——向导会说明这三个步骤,并为你打开这个页面。然后打开每个要导入的Notion页面,点击右上角的**”…”**→连接,再添加你的集成——Notion只会开放你已明确连接的页面。
Plainva不会保存这个令牌。 它只对这一次运行有效,之后就会消失;不会创建任何已连接的账户。下次导入时,你需要重新粘贴它。
通过API,Plainva看到的是结构,而不仅仅是文本:
- 页面层级结构会变成文件夹结构。
- 每个数据库都会变成一个
.base文件,加上一个文件夹,其中每一行对应一篇笔记。 - 关联会变成这些笔记之间的Wiki链接,且是双向的。
- 21种属性类型会被映射——单选、状态、多选、日期、数字、复选框、URL、邮箱、电话、公式、汇总、关联、人员、唯一ID等等。
- 表格、看板、日历和列表视图会根据数据库模式自动生成。
- 嵌入在页面内的数据库会变成实时的
![[Database.base]]嵌入。
通过ZIP导出。 这种方式可以离线进行,也不需要令牌,但Notion的导出不包含数据库模式或页面ID。页面及其文件夹会被迁移过来,并且已导入页面之间的链接仍会正常工作——Notion会在每个路径片段中写入一个较长的ID,Plainva会将其指向实际写入的笔记。每个数据库文件夹旁边的 .csv 会被读取,用于补上页面本身没有的内容:列、列的类型,以及每一行的值(写入 frontmatter)。导出中没有对应页面的行会被写成笔记。匹配依据是标题——带有真实 ID 的是 API 方式,对于建立在关联之上的工作区,它仍然是更好的选择。
导入无法迁移的内容
每个导入器都会在预览中说明其局限性,并在报告中再次列出。主要的局限包括:
- 附件会被导入。 来自 ZIP 或文件夹的附件会保留它们在导出中的位置,因此笔记里的相对图片链接仍然有效。来自 Notion 的附件通过 API 在导入过程中下载——Notion 会为这些链接签名,且它们会在一小时内失效——并放入
Attachments文件夹;页面从网络上其他位置引用的图片仍保留为链接。只有两种例外会留在你的导出里,并在报告中逐一列出:Evernote.enex内的附件,以及 Google Keep 的图片。 - 压缩包中的部分条目会被有意跳过: 体积过大的文件、符号链接以及路径不安全的条目。在你开始导入之前,它们会连同原因一起显示在预览中。
- 非常长的Notion页面会被完整读取,但嵌套在折叠块、分栏或子列表中的内容不会被读取。
- Logseq文件会原样复制——
key:: value属性和块引用不会被转换为Plainva的属性或链接。 - 删除的笔记仍会保持删除状态。 Simplenote和Google Keep的回收站会被跳过——你曾经决定放弃这些笔记,导入不应该悄悄把它们还给你。报告中会指明它们的名字,方便你看到哪些内容被留下了。
- Notion的ZIP导出按标题把行与页面对应起来(详见上文),并且不会带来数据库之间的关联。
日期同样会被迁移
如果导入后所有内容的日期都变成了今天,那么一份历经多年积累的收藏就会失去它的时间脉络。因此,Plainva会保留来源的日期信息:
- 它们会作为
created和updated写入导入笔记的Frontmatter中——关系图的时间轴同样是从这里读取它们的。 - 文件本身也会获得来源的修改日期,这样按日期排序和最近打开才会准确。文件的创建时间只能在Windows上设置;在其他系统上,Frontmatter是承载这一信息的地方。
- 如果来源没有提供日期,Plainva会使用导出文件的日期。它绝不会凭空捏造一个日期:如果完全没有可用的信息,该字段就会保持为空。
单个失败不会终止整个导入
如果某一篇笔记无法写入,导入会继续进行,报告会列出它并说明原因。即使运行提前中止,报告也会被写入——因此你始终能看到已经进入你仓库的内容。
不会覆盖任何内容
导入内容会写入你当前打开的仓库,因此它的设计原则是不做破坏性操作:
- 如果笔记名称已被占用,导入的笔记会被编号(
Meeting (2).md),而不是替换已有的笔记。当两篇源笔记同名时,同样适用这个规则。 - 导入的笔记会带有通常的OKF Frontmatter(
type、okf_version),因此在.base的筛选和视图中,它们的行为与其他任何Plainva笔记一样。 - 目标子文件夹之外的任何内容都不会被改动。
如果你希望将导入内容完全独立开来,可以先新建一个仓库(在启动界面选择新建仓库),然后再导入其中。
导入报告
每次运行都会在目标文件夹中写入一份导入报告。其中列出:
- 导入了多少笔记和数据库,
- 这个导入器完全无法迁移的内容,
- 所有不完整到达或被跳过的内容,并附带原因,
- 以及每个文件及其状态。
这份报告是本次运行的如实记录——如果有内容被截断或丢弃,都会记录在此,而不会被悄悄算作成功。在你删除导出文件之前,值得读一读这份报告。
报告的最下方说明了如何撤销这次导入:一次运行产生的所有内容都位于同一个文件夹中——删除这个文件夹,导入内容就随之消失。如果目标是新建仓库,那就是新仓库自身所在的那个文件夹。为此并不需要专门的撤销命令。报告本身也只是一篇普通笔记,读完之后即可删除。
另请参阅
- 数据库(.base)——导入的Notion数据库会发生什么
- OKF——导入的笔记会获得怎样的Frontmatter
- 快速上手——为导入内容新建一个独立的仓库
- HTML 表格和代码块会失去结构。 转换会读取标题、列表、强调、链接和图片;表格会变成单元格的文字。每一个受影响的页面都会写入报告。