为什么我的博客没有数据库

这个站的内容不存在数据库里 —— 它们就是你正在读的这个仓库里的 issue。

内容怎么变成文章

  1. 在这个仓库新建一个 issue:标题就是文章标题,正文就是文章正文。
  2. 打上分区标签:blog 博客、diary 日记、essay 随笔。
  3. 站点在服务端用 GitHub API 拉这个标签下的 issue,渲染成列表和详情页。

没打标签的 issue 不会公开;关掉 issue 相当于从列表下架;去掉标签才是彻底下线。

为什么不用数据库

  • 没有后台:写东西只要一个 GitHub 编辑器,手机上也行。
  • 没有迁移:内容从第一天起就是仓库里的数据,不会丢在某个备份里。
  • 评论免费:issue 的评论就是评论区,垃圾评论交给 GitHub 管。
  • 代价:搜索、分页、草稿这些都得自己在代码里做,或者干脆不做。

技术上是怎么回事

拉数据的地方大概长这样:

const issues = await fetch(
  "https://api.github.com/repos/liwenka1/speak-mind/issues?labels=blog",
  { headers: { Authorization: Bearer ${process.env.GITHUB_TOKEN} } },
);

配一个只读 token(限额从 60 次/小时提到 5000 次/小时),再加一个 webhook 让改动立刻生效 —— 一个不需要运维的博客就好了。

想看效果就点开 liwenkai.fun。

评论(2)

  1. liwenka1

    那搜索怎么办?

  2. liwenka1

    交给 GitHub 的搜索,够用了。

去 GitHub 参与讨论 →