jar包导出无法显示图片或者音乐_从 Notion 批量导出 Markdown

痛点

介绍了 Roam Research 后,有小伙伴问我是否用过 Notion。

用过。

刚才找了找,还有来自于 2017 年 5 月的 Notion 笔记记录。

简单看了一下,这三年多以来,我用 Notion 写了不少笔记,也采集了很多网页内容。

781530846ab938125c51d3e026226cd1.png

但是,我算不上 Notion 的重度用户。因为有个痛点,我从来也没有解决。就是导出

我用笔记工具,很多时候都需要输出成文章发布。发布的时候,我得用 Markdown。

很不幸,在 Notion 上,这个过程,从来就没有痛快过。

虽然 Notion 从很早就提供 Markdown 导出,还包括子页面。但是导出来的结果,总是无法令我满意。

a50856a1ed6a43f9f5963b695ab63bb0.png

例如子页面仅仅是指实质的上下层级关系,而链接的页面不包含在导出结果中。

d0d6052107d4543d5fcef529da5b4978.png

因为喜欢卡片式笔记,拼接移动,我是希望 notion 能够像 Scrivener 一样,输出的时候把这些卡片拼完整输出的。

但是,这基本上做不到。

导出的标题,只要是中文,就都是「无标题」(Untitled)。

26daa42867f13cddcbb67049ce2b5e67.png

内嵌照片,要么因为是链接,导出过程根本就没有下载。

19f172fae773e7d95b2e2ed040c012c1.png

要么下载之后,也无法正常在 Markdown 编辑器里面显示。

344857d028054f050da7fcb83f6d9eb3.png

有的就没有按照图片来对待:

59819235b8f1e4b5f78be46936f2a646.png

而即便是被下载下来的图片,有的也没有合适的扩展名。

0dc4ed65765776707c6a14c87cbec4a3.png

但是如果预览,你会发现它就是张图啊!

6165655eeaed521208536d1b748618f2.png

由于不能在输出的时候,保持完整性和可用性,我就不敢再把更多的笔记迁移进来,同时也不愿意在 Notion 上写更多的文章了。

解决

前些日子,我因为写研究报告的需要,从 Notion 里批量导出一些笔记,放入「第二大脑」里面进行处理。

上网查资料的时候,我突然发现了这个 Github 项目,叫做 notion2md。

5ae2069c0eae37ef81d11d52cca6d4aa.png

它已经做成了 Python 的软件包,可以调用 Notion 的 API,帮助用户导出为更妥帖的 markdown 格式。

你只需要使用:

pip install notion2md

安装之后,就能执行:

python -m notion2md

你需要指定输出文件名称,自己的 token_v2 身份验证信息,以及来源 notion 链接,就能在本地输出导出的 Markdown 结果了。

f61e18bb51ccb799b7bc81b9ae08d155.png

但是,这个工具,有以下几个问题:

首先,你需要安装 Python 和依赖模块;

其次,对于每一个要导出的单元,你都需要重新执行一遍。作为单一文章输出,这还好。但是如果你是打算进行数据备份或者迁移,那就太麻烦了;

另外,你需要在后期手动进行图片路径的处理,删去多余层级。这应该是一个 bug。

正因为如此有上述的问题,所以目前该工具的 Github 页面上,只有寥寥 4 颗 star,其中一颗还是我打上去的。

7cc710dbac12173577d3827d9122a9f4.png

我希望的是,把上述问题解决,而且最好做成 Web App ,这样大家都可以直接拿来即用。

改进

经过半天的折腾,我终于用 Python 和 Streamlit 完成了这个制作过程。然后又花时间做了个使用说明出来。

d7341688eb7e80f2870f36e8acc7cdca.png

这个项目的 Github 页面在这里。

你只需要按照上面列出的步骤,一步步来就行。考虑到部分同学阅读英文不是很流畅,我这里翻译了一份中文步骤给你。

步骤

请按照以下简单步骤操作。

第一步,打开这个链接,你会看到 App 界面。

e46d3d16be803bb1bc709871ccb12abe.png

第二步,获取你的token_v2(你的身份认证码),并将其输入到第一个文本框中。你可以通过阅读这个图文教程来学习如何取得你的token。

第三步,将所有要导出的页面都移动或者链接到一个新页面。例如我这里新建了一个「准备输出」。

016be228ca9f3bd020814061cf1aba37.png

第4步,复制新页面的链接,粘贴到第二个文本框中,然后按回车键。

ff71f3baa1bccb286bd9b538f4ae3721.png

第五步,你会看到一个名为 "export" 的新按钮出现。点击它。

5a4ca9f4b4b519f4915e2128391bb97b.png

第6步,运行一会儿(视你要导出的内容多少,尤其是图片大小等因素而定),当你看到网页上显示了一个名为「点击下载」的新链接,点击它并下载压缩文件。解压后,你会发现所有的Markdown文件以及图片。

3871ba1dcacd93587e1a4141b456b0df.png

这是子文件夹下面的图片:

be6723a5c56beb4a280834ffbdb79b0d.png

第七步(可选),将解压后的文件夹拖到 Obsidian 或者 Zettlr 的根目录下,然后正常浏览图文。

861f2aefc1d7ef07d0d18a1686e8ce7a.png

所有页面的标题,都被保留为 Markdown 文件的名称,对中文同样支持。这样你在后面依照标题建立双向链接,就会变得非常容易。

另外说明一下,因为 API 的功能限制,目前该 App 尚不能准确处理 Notion 的 database (数据库),而只能对普通的页面(Page)进行导出。

不过各种 Media 类型都是可以处理的。只不过只有图片进行了本地化输出,其余的类型,例如视频、pdf 等都保留了原先的链接。你可以通过链接跳转访问。

对于我来说,主要是写论文和图文类教程,因此这些其他类型的多媒体数据,本来也是不需要输出的,所以刚好合适。

感受

有了这个比较靠谱的批量导出功能以后,我觉得 Notion 变得更加可爱了。

至少,我写东西的时候,可以不用考虑将来导出之后一通检查、调整、修改名称等等繁琐问题了。没有了后顾之忧,用起来感觉更加轻松愉快。

我可以更加随心所欲在 Notion 里面采集和进行快速记录,并且进行卡片笔记的撰写和整合。

已知问题

经过多位来自于全球各地的小伙伴帮我测试后,发现运行起来功能比较正常。

f74c877e3f35f0e00b16e6801a3daa60.png

目前主要反馈得来的问题,是连接可能不稳定。

没办法,咱们用的是 Heroku 免费托管,没交钱。人一多,并发就会是个问题。而且不同电信运营商的连接可靠性也无法保障。

好在源代码我在 前面的 Github 链接 那里都给了你,所以你可以利用它在本机或者自己的私有服务器上搭建服务。

如果你要尝试自己运行服务,可以参考 我的这份教程 快速了解 Streamlit 的使用方法。

祝使用愉快!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值