先看看是什么效果
恋恋不忘
自从用 Notion 写博客的轮子造完后,我还是觉得 Notion 的能力没有被真正的解放,很大的原因是官方 API 迟迟不肯推出。非官方的 notion-py 还算不错,但是想实现什么任务,用后端写起来又比较麻烦(主要还是数据交互的问题),想用 Notion 再做点什么的想法一直搁浅。
必有回响
前几日看到 Notion 的 Twitter 推送。简单说来就是把官方的浏览器扩展保存成 Chrome 应用,然后搭配系统的快捷键设置。在无需启动 Notion 和浏览器的情况下,调出裁剪应用,做一些简单的 TODO 记录。
功能有限,但是令人耳目一新,启发了我。我在想能不能写个扩展,搭配后端做一些通用的操作。于是便有了这个项目。
主要思路
整体思路非常简单。Notion + 扩展提供UI,扩展的主要功能是监听点击事件,发送操作记录的ID 和动作名到服务器。后端通过 ID 获取到对应的 block,通过任务名获取到对应的任务函数,然后执行任务。在任务中可以完成对 block 对象的数据回写,这样即可实时地在 Notion 上得到反馈。
啊!我想到了
花了一天时间验证上面的想法和思路,成功跑通之后便睡下了。
事实证明,当你潜心于某件事物的时候,关于它的 💡idea 会不断地冒出来。第二天早上,迎来了新的思路。
在后端编写任务代码,每次加新任务还要更新后端,重新部署。虽然CI/CD 能免去一部分的部署成本,但还是复杂了点。能不能做得再通用易用一些?
既然 Notion 提供了 CodeBlock ,那么在 CodeBlock 里写代码定义任务,后端获取任务代码,动态解析执。岂不美哉!按着这个思路我实现了第二版,大致就是演示视频中的效果。然后重写了前端扩展(第一版验证想法前端写得比较疵)。顺便推荐一下 V友的这个 项目 ,节省了不少时间。
后续
尽管一切的实现都比较简陋,但是已经达到了我的预期效果,提高了生产力(我自己先爽了再说)。
这个项目面向的群体是 Notion 重度用户 + 程序员。毕竟你需要自己跑后端服务(虽然也可以做成通用化的服务)
昨天补充了文档,发布了 Chrome 扩展,希望能降低项目的使用门槛。发布到博客和V站,是为了吸取建议,让这个项目变得更好(让我自己用得更爽)。网络上的思维碰撞总能令我产生一些新的想法。
关于项目的后续发展,感兴趣的同学关注下这个 页面 。页面中包含了关于项目的所有信息(除了我脑袋里没表达出来的)。最后不能忘了 Github 。
如果你觉得博客和论坛中交流不便,也可以加入微信群讨论。