使用 notion2md 从 notion 导出 markdown

为了用 notion 写公众号,我给 notion2md 提了个 merge 。

前段时间使用 notion 作为笔记,当需要将一篇笔记导出来贴到其他地方,比如公众号的时候,会有一些问题。主要碰到的是自带的一些图片导出的问题。

先说流程:

  1. 用 notion 写文章或者笔记,将笔记使用 markdown 格式导出

  2. 使用 Picgo 的图片迁移插件将图片上传到 github

  3. 利用 markdown 工具格式化后贴到公众号。

notion 导出 markdown

notion 自带的导出 markdown 图片的时候路径上会带有空格,在路径上显示就是 成 %20 ,使用 Picgo 的图片迁移插件会迁移失败。然后不得不手动的去编辑导出的 markdown 文件。

在 github 上发现了项目 notion2md 可以用来导出 notion 的 page 。

可以将 notion 的笔记导出为 markdown 。但是又遇到了另一个问题,在做笔记的时候,截图的图片名是 Untitled.png 。 导出的图片名字重复,导出会被覆盖,最后只剩下一张图片,导出 markdown 文件的地址也是相同 。

看了一下 notion2md 处理文件部分的代码,在 notion2md 的 file 的文件下载代码里面将文件名使用 uuid 重命名来解决,这部分代码已经给作者 echo724 提了个 pr , 预计会在未来的某个版本里面合并。

notion2md

安装

$ pip install notion2md

命令行

1
2
3
4
5
6
7
8
9
10
11
12
13
	$ notion2md -h
usage: notion2md [-h] [--type TYPE] [--url URL] [--id ID] [--path PATH] [--name NAME] [--version]

Notion2md: Notion Markdown Exporter with Python Cli

optional arguments:
-h, --help show this help message and exit
--type TYPE, -t TYPE Set a type of target page: block, page, database
--url URL, -u URL Set an url of target page
--id ID, -i ID Set an id of target page
--path PATH, -p PATH Set a relative path of output file
--name NAME, -n NAME Set a custom name of output file
--version, -v Show a version of Notion2Md

使用

  • 先去 notion 创建 token My integrations | Notion Developers

  • 在notion 的 page 上点 Share → Invite 选上面创建的 token 的名字。没有授权的化转换会提示 Conld not find block with ID xxxxxxxx 的错误。

[image is not supported]

  • 添加 token 的环境变量

export NOTION_TOKEN="{your integration token key}"

  • 执行转换命令

notion2md -n post -p ~/MyBlog/content/posts -u https://notion.so/...

如果需要文件重命名的功能,可以使用我 frok 的版本来安装。

添加环境变量export NOTION2MD_UUIDFILE=true ,导出的图片将使用 uuid 重命名。

使用 notion2md 从 notion 导出 markdown

https://beixiu.net/tool/notion-to-markdown/

作者

张巍

发布于

2022-03-16

更新于

2022-04-22

许可协议

评论