为什么我的博客没有数据库
这个站的内容不存在数据库里 —— 它们就是你正在读的这个仓库里的 issue。
内容怎么变成文章
- 在这个仓库新建一个 issue:标题就是文章标题,正文就是文章正文。
- 打上分区标签:
blog博客、diary日记、essay随笔。 - 站点在服务端用 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)
那搜索怎么办?
交给 GitHub 的搜索,够用了。