使用 Astro Gyoza 搭建的静态博客差不多半年了,感觉和之前的 Hexo 没有什么太大区别,编辑好文字,Push 到 GitHub,等待自动构建完成即可。只是随着使用增多,也会逐渐形成不少新的想法和需求,紧接着便是花时间具体实现了。
AI 摘要
AI 摘要已经算不上什么新的应用体验了,差不多和GPT 3.5 API 接口发布同步出现的,但是别人都有的,自己也得配上。方案选择了独立项目的形式,相对于项目内实现,可以更好的利用 Cloudflare D1、Workers 等免费服务,降低 AI 成本的同时提了高服务的稳定性。目前使用上还算稳定,属于在阅读体验上的一次增强,比较满意。
集成 Lucide Icons
为了更简单的变更博客中的 icon,引入 Lucide 替换了原作者使用的“font-class”方案,在代码实现层面不如原版本优雅,另外原本 30 秒左右的构建时间硬生生增加到了 60 秒以上,不过属于不得不接受的一个代价,快速和方便总得做出选择。
重写 404 页面
404 页面在博客中的重要性并不高,尤其是 Vercel 之类的托管服务本身就具备处理错误路由的能力。原项目提供的 404 页面采用了简约的暗黑主调以及光影动效,对我来说风格有些突兀,所以重新作了调整。主体采用了之前见过的颜色渐变的 404 文字,并与根据时间变化显示不同月相信息的元素组合,风格保持干净、简约,同时适配了夜间模式,算是符合我审美的一点调整。
Google Analytics 轻量化引入
自动构建从 Cloudflare 迁移到 Vercel 之后,不能使用 Zaraz,原生的 Google Analytics 体积过于庞大,也存在被屏蔽的问题,所以借助 Cloudflare Workers 引入了轻量化的 Google Analytics,采集数据会少一些,但是效率会更高、更稳定。
可配置的版权信息
原项目对所有博文采用“BY-NC-SA 4.0”协议进行分发,考虑到可能存在需要不同版权协议的可能,对项目中的版权信息作了可配制化支持,通过 Markdown 中的 Front Matter 进行配置即可使用,还算方便。
---
license:
name: ’CC BY-NC-SA 4.0‘,
url: ’https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh‘,
description: ’商业转载请联系站长获得授权,非商业转载请注明本文出处及文章链接,您可以自由地在任何媒体以任何形式复制和分发作品,也可以修改和创作,但是分发衍生作品时必须采用相同的许可协议。‘
---
内容加密
有些内容并不想公开分享,但是管理分散的内容又会消耗不少精力,所以还需要内容加密、内容解密的支持。
- 构建过程中会找到在 Markdown 的 Front Matter 中设置了 password 的文档,并将其渲染的 HTML 标签与内容进行加密得到最终的页面。
- 客户端需要输入密码进行解密得到真实的 HTML 内容,再进行渲染呈现,从而保护内容安全。
不得不承认,自建博客就是一个缓慢发现问题、提出新需求的过程,但往往需要投入时间自行解决,对于纯内容输出群体决算不上友好,如果缺少折腾的动力,还是另选方案比较好。