#notion-api #pandoc #ast #page #convert #command-line-tool #format

程序 notion2pandoc

将Notion页面转换为Pandoc AST

8 个不稳定版本 (3 个破坏性更新)

0.5.1 2023年2月19日
0.5.0 2023年1月29日
0.4.0 2023年1月3日
0.3.4 2022年12月9日
0.2.1 2022年9月28日

编码 中排名 1041

每月下载次数 21

MIT 许可协议

1.5MB
1.5K SLoC

Rust 1.5K SLoC // 0.0% comments Haskell 244 SLoC // 0.2% comments

notion2pandoc

notion2pandoc 是一个简单的命令行工具,通过使用 Notion API 将 Notion 页面转换为 Pandoc AST。

notion2pandoc 将 Pandoc AST 序列化为 JSON 输出到标准输出。结合 Pandoc CLI,您可以使用 Pandoc 支持的您最喜欢的标记格式来格式化 Notion 页面,如下所示。

notion2pandoc -i ${NOTION_PAGE_ID} -s ${NOTION_API_SECRET} | pandoc --from json --to {html,markdown,...}

notion2pandoc 输出 pandoc-types-1.23。验证使用 Pandoc 3.0.1 完成。

为什么需要 NOTION_API_SECRET?

notion2pandoc 不是从 stdin 获取类似 curl 的输出,而是实现为获取 API 密钥并在内部调用 Notion API。这是因为当前版本的 Notion API 需要多次 API 调用来获取整个页面。

API 允许我们获取构成页面的块列表。但是,当块的数量超过 100 时,必须使用 分页 再次调用 API。当块有子块时,需要另一个 API 调用来获取其内容。

不支持的功能

notion2pandoc 简单地忽略具有以下 块类型对象 的块。

  • 子页面
  • 子数据库
  • 导航栏
  • 列列表
  • 模板
  • 同步块

notion2pandoc 不生成目录。相反,您可以通过查看生成的 AST 中元数据的 toc 值来检查页面是否包含具有 table_of_contents 类型的块。

许可协议

MIT

依赖项

~10–22MB
~342K SLoC