关于本站最近的更新
一次小规模的重构
开发
-距离上一次发文已经过去了大半年。没什么特殊原因,就是表达欲下降了而已。加上一直在忙自己的事,没有写文章的心情了。
但我是那种,一旦进入某种状态,就会倾向于维持下去的人。
如果这段时间都坚持运动,我就会非常想运动;如果这段时间不运动,我就不想运动。
今年开始尝试用AI的Agent模式辅助编程,加上上个月之前的一个外包项目有新增需求,持续写了一段时间代码,导致我进入了想要写代码的状态。于是除了给一个开源Chrome插件贡献了一些代码以外,我还给本站的CMS和前端新增了许多新功能,也修复了一些陈年bug,优化了性能。
前端
升级
你现在正在看到的网站,之前使用Remix开发的。但是从去年开始,原计划在Remix 3中推出的功能被合并到React Router 7里了,所以如果想从Remix 2.x升级,就得改为使用React Router 7。好在Remix本身就是基于React Router开发的框架,升级并不困难。几乎只是改了一些设置,就可以丝滑升级了。
登录
去掉了邮箱/密码登录方式,改为邮件Magic Link登录。其实我开发登录功能的初衷是限制恶意评论——未登录用户的评论需要审核后才能显示——但后来发现,似乎并没有什么人评论……
另外想做的功能就是登录后可见。对于一些政治话题的文章,仅限登录用户可见。虽然并没有什么用,但能防止被搜索到。
地图模式
这也是一直想做的功能,但是由于太过复杂,一直没动手。这次借助AI竟然在一个晚上就开发出来了。
性能优化
另外就是一些性能方面的优化,比如按需导入js文件、延迟加载等。虽然本站之前就已经够快了,这些改动对实际体验的影响有点微弱。
评论
不管是未注册还是已登录用户,都可以选择在评论时勾选“接收回复通知”。通过Supabase Edge Function实现了这一功能。
另外评论框支持markdown语法了。
CMS
更大的重构在CMS——也就是所谓的“后端“,这次增加了超多新功能。
首先是升级依赖,Svelte升级到5,在这一版中Svelte引入了rune语法,于是我将之前应用到响应式数据的地方都换成了新语法。
移除独立workers的依赖
CMS有很多需要运行在边缘的函数,包括各类AI功能、上传图片到R2并提取EXIF信息。去年开发CMS的时候,为了方便开发和测试,我将这些逻辑放在了独立的workers单独部署。
这次我把这些函数放在了CMS项目内,作为SvelteKit的Server Endpoint。不得不说在调试上画了很长时间。
之前网站用到的各类API key和设置信息都存储在KV里,我觉得没什么必要,就把这些数据放到数据库里了。
升级AI模型
从原来的gpt-4o升级到5。由于从gpt-5开始就不能使用原来的completion方法了,需要改用response。这也是我决定重构这些workers函数的初衷。
Unsplash自动上传
这也是一开始就想做的功能。现在从Unsplash上传图片只需要在编辑器内浏览并点击即可。
现在博客几乎已经是我理想中的样子了。我唯一的担心就是,目前为止,项目的复杂度还在我的掌控和理解中。等到未来我是否还有意愿继续完善,AI是否能避免制造屎山,需要打个问号。