个人数据保全计划:从印象笔记迁移到joplin

前言

最近在探索各种现代化的笔记工具时,刚好用上了Joplin这款应用,尽管界面没那么好看,但开源、支持markdown、功能完善,而且还支持很多导入方法(事实上很多开源笔记都支持)。

其中的导入功能里面就有印象笔记,于是我想起来尘封多年的印象笔记账号。

事实上我已经很多年没用印象笔记了,上次使用似乎还是很多年前大学时,当时还开了好几年会员,用来收藏网页、微信公众号文章,挺好用的。

可惜印象笔记(evernote)从某一年开始搞了中国特供版和国际版彻底切割,吃相越来越难看,而且导出格式也改成了专有格式,越来越封闭,这不是一个好兆头,我最怕被绑定在某个平台或者生态里。

而且数据总是掌握在自己手里最安全,于是我开始了本文的笔记迁移折腾。

折腾过程

evernote-backup

https://github.com/vzhd1701/evernote-backup

一开始我使用了 evernote-backup ,但一直报错。

bash 复制代码
evernote.edam.error.ttypes.EDAMUserException: EDAMUserException(errorCode=8, parameter='consumerKey')

我猜测是印象笔记中国版改了新的token。

因为网上很多博客文章都是可以用这个工具正常导出的,不过这些文章都是在2-3年前。

也有issue提到这个问题,参考: https://github.com/vzhd1701/evernote-backup/issues/113

evernote2

https://github.com/JackonYang/evernote2

后面在issus里看到有网友 fork 了 evernote-sdk 改了个新的版本,时间还挺新的。

我打算试一试,但还是报错,不过这个报错似乎跟接口没有关系,我通过修改这个工具的代码解决了这个报错。

详情见我提交的这个 issue: https://github.com/JackonYang/evernote2/issues/8

不过使用这个方法导出之后,joplin还是不能导入,我观察了导出的文件,虽然也是enex后缀,但里面是xml格式的,还带着resources目录,这似乎和joplin需要的格式不太一样

回到evernote-backup

第二天我又继续用回了evernote-backup项目,阅读代码尝试解决这个问题,不过在代码里似乎没找到问题所在(而且有些python的代码是真的难读懂😂)

于是只能继续去翻issues,果然有人提到这个问题,报错的解决方式是直接使用token,而不是用户名密码登录。

首先去中国版印象笔记的官网创建tken: https://app.yinxiang.com/api/DeveloperToken.action

然后使用以下命令来创建备份

bash 复制代码
evernote-backup init-db --backend china -t token

这个工具的速度还挺快的,几千条笔记,没多久就下载好了。

导出的文件形式是一个笔记本一个enex文件。

导入Joplin

这时候就可以到Joplin这边导入了。

在 Joplin 里选择导入,选择enex目录形式,我之前在印象笔记里面主要是保存网页和公众号文章,所以这里选HTML格式,这样对原有的样式还原比较好,但同时也牺牲了可编辑性(网页在Joplin里编辑支持不佳)。

如果想要编辑可以选markdown,但格式可能会有点奇怪,这个就只能自行取舍了...

导入过程会显示进度,整个过程体验还是不错的。

每个enex文件会自动创建对应的笔记本,并且标签也能正确识别。

小结

到这里就已经成功脱离evernote了...

如果是要使用 joplin 代替印象笔记,还得配置一下同步功能,我暂时没这个需求,所以后续我再折腾一下同步功能。

最近我还同步试用了Zettlr、trilium这些笔记工具(Obsidian和Notion之前用过了),等有时间也写一下对比。