关于本站
前几周无意中看到了 Whexy 关于如何打造一个自己完全能掌控细节的博客系统的文章,于是在他的工作的基础上自己增加了一些修改,将原来基于 pelican 的中文博客迁移到了新的框架上,并且 host 到了 Cloudflare 上。
Nextjs 与 edge function
我之前一直一位 Cloudflare Pages 只能 host 静态博客框架生成的一堆 HTML 文件,然后通过浏览器展示给用户。 如果要增加动态内容的话,就只能利用其他系统例如 D1、R2 来存储动态数据。 了解 Nextjs 后发现,它在框架层面原生支持了 API 路由等功能,可以在用户访问某个页面或者路径的时候主动执行某些函数(在 Vercel 中称为 edge function)。 其实 Nextjs 本身支持的服务端渲染(SSR)就可以被认为是 edge function 的一种,即它的发生时机并不是在网站构建时,而是在用户访问页面时;并且发生的地点也不是在用户的浏览器中,而是在远端的 host 系统中。 正如 Whexy 在他的文章中说的一样,利用 Nextjs 加 Taildwind Css 可以实现高度定制化的博客,也可以随意增加新功能,对于我这种经常更换博客系统和主题的人来说再合适不过了。
我在 Dynamics 页中实现了几个利用 edge function 动态展示内容的服务,包括利用 Strava API 同步运动记录和用 Discord Bot 展示即时想法的功能。
为什么选择 Cloudflare,而不是对 Nextjs 支持更好的 Vercel?
众所周知,Nextjs 的开发团队本身就来自于 Vercel,V 站也对它提供了亲儿子级别的原生支持。 但我目前还是将本站托管在 Cloudflare 上,其实最大的原因是使用习惯,我之前的静态博客一直使用 Cloudflare Pages 来 host,并且我的域名也都托管在 Cloudflare 上,因此沿用这个习惯对于我来说迁移成本更低。 还有一个考虑是 Vercel 的免费计划每个月有流量限制(应该是 100G),虽然本站访问量还远远达不到这个级别,但是还是会无意中给自己增加心理负担,所以还是选择(暂时)无限制的赛博佛祖 Cloudflare 了。
评论系统
读者的反馈和评论也是博客文章创作的一部份,之前因为懒一直没有给网站添加评论功能,而且目前的 Giscus 系统也依赖 GitHub 等平台作为后端。 正好今天看到了 Twikoo,它允许用户只填写 nickname 就能评论,而且也支持 Netlify 等云函数部署。 趁着最近有空给 post 类的文章下方加上了评论系统,如果在评论时填写邮箱,则可以收到后续的回复提醒,并且如果你在 https://gravatar.com 上配置了头像的话,Twikoo 会显示你设定的头像;也欢迎你在评论时填写自己的 blog 主页。