自己使用 Notion 进行内容的记录与存储,但也需要将 Notion 中指定的内容发布到网络中。我需要一种解决方案以实现:
- Notion 中创建一个 Database;
- 每一个 Item 有 Target、Tags、Visibility、Status 和 CreatedAt 字段;
- 有一个 GitHub Action 每天/每小时定时运行:https://github.com/juzhiyuan/notion-contents
- 调用 Notion API 以获取该 Database 下所有记录;
- 将这些记录转换为 Markdown 并存储到 Git 以备份内容;
- 触发 Action 从 Markdown 构建静态站点,分别推送到国内、海外 CDN 上;
- 这样就能实现只需要维护 Notion 就可以发布内容了。
问题
- Notion 上删除某内容后,如何删除 Git 上的内容?
- 发布到 博客 和 Blog 的 Action 不会存储原始内容到 Git,每次都会全量拉取数据、并构建站点,暂不需要考虑如何同步删除 Git 中的内容;
- 每次都需要全量从 Notion 获取数据吗?
- 当前是的,因为内容并不多;
- Action 运行失败了,如何通知我?
- 🤔 不着急,先不管它。
- 如何处理 Notion 特定 S3 链接?因为它有时会更换,需要持久化。
- 做一个 S3 持久化服务?或在 CI 中上传到 S3?但是会产生很多重复文件?
- 先每 1 小时运行一遍 CI?对国内的访问不利;
- Notion 把 File URL 都进行了签名,每小时过期一次,就每小时更新下 CI 吧。
- 后续可以根据 URL without Query - 进行反向代理、缓存。
- Notion 把 File URL 都进行了签名,每小时过期一次,就每小时更新下 CI 吧。
- Notion 作为唯一的数据源,如何备份 Notion 数据?
TODO
- 从 Notion API 获取数据并转换为 Markdown
- Action - 构建、推送到 R2
- Action - 构建、推送到 腾讯云 COS
- 更新 Resume
- 更新 Google Analytics
- 认证 Google 爬虫认证、百度站长认证等
- 解决 GA 未显示问题
- 对应设置网站语言,区分中文与英文,SEO
-
周六日、周一到周五