是什么
在 Heptabase 中编写笔记,自动同步到个人的数字花园网站中。

目前支持的功能
[✓] 展示 Heptabase 的笔记内容
[✓] Heptabase 编辑笔记可一键更新到网站
[✓] 双向链接
[✓] 深浅色模式
[✓] 面包片导航交互(参考 Andyʼs working notes)
[ ] 文字高亮
[ ] 嵌入视频
为什么不用其他方式
工具选择
尝试过 HUGO 和 Notion 等方式、研究了 obsidian publish,也实践用 Notion 维护了一年的博客,但一直没有找到比较理想的方案。
一方面,笔记在 Heptabase 中,文章放到其他平台会导致双向链接失效。我在实践卡片笔记法,文章与笔记有高度的关联性,例如下面这篇文章中就存在多个卡片链接,但是这些链接在 Heptabase 以外的地方显示时就无法正常打卡笔记,所以不得不转为普通文本,这不但增加了工作量,也使得原本文章的脉络失效。

另一方面,笔记、文章数据在不同平台有多份副本,后续修改起来就要穿梭在不同平台中进行更新,维护成本高。
博客 vs 数字花园
数字花园的理念与我正在使用的卡片笔记法、Heptabase 的设计哲学更加贴近,所以放弃了持续 1 年的博客改用数字花园的方式维护自己的个人站点,下面会详细介绍一下原因。
对数字花园的理解
聊一下我对数字花园理解,以及如何将这些理解体现到网站的设计上。
知识的持续性
数字花园的内容是持续迭代的,我可以发布尚不成熟的想法(不一定要等到输出完整的文章)并且可以在发布后持续的修订。所以在笔记列表中,不是强调笔记的创建时间而是展示最近编辑时间,并将最近编辑的笔记展示在最前,方便阅读者理解笔记的活跃状态。

这和我运用的卡片笔记法理念一致,通过不断的积累、迭代卡片完成文章的输出,而不是一来就面对一张白纸一步到位完成创作。
思考的脉络
传统博客通常会按创建时间展示文章列表供用户阅读,通过标签筛选某个类型的文章。而数字花园则强调思考的脉络,具体体现在以下几点
- 弱化文章列表,用一个介绍页/索引页作为阅读者漫游的起点
- 支持双向链接,阅读者可以看到与当前文章关联的其他知识、想法
- 支持开头提到的面包片导航,阅读者可以快速地在不同笔记间流转

总的来说,使用持续迭代的、重在体现思考脉络的方式记录想法,最终也用同样的方式分享知识,这是我选择数字花园并开发此网站的原因。
使用方法
如果你感兴趣,可以尝试动手自己配置一下(由于本人技术水平有限没办法让配置流程更加简单 🙇🏼)
数据通过 Heptabase 抓包获得,由于受到跨域的限制开发了一个 Python API 转发数据,前端与 API 挂载在 Vercel 上面。
使用 react-markdown 将 md 内容转为 HTML,CSS 使用 github-markdown-css。
前置准备
拥有一个 Github 账号
拥有一个 Vercel 账号
懂一些 git 的操作,例如 clone、push……
拥有一定的编程能力
由于已经有很多现成的文章进行说明,所以下面只描述一下大概的操作流程。
操作步骤
- 在 Heptabase 的任意白板中创建 1 个笔记,
H1标题为About,这则笔记将是站点的首页。 - 在 Heptabase 中公开白板
- 创建 1 个 API,用来获取上面白板的数据
- 将网站代码部署到 Vercel
- 设置
src/config.js分别填入第 3 部的 API 地址、站点名称

更新笔记只需要在 Heptabase 中点击Publish Changes 即可(网站更新将延迟 10 分钟左右)。卡片多了会比较卡,可以在主白板中新建一个子白板存放卡片(不影响网站数据的显示)
