静态博客的隐私边界:一次第三方请求审计 静态博客没有后端,并不意味着访客只跟你的服务器打交道。用脚本审一遍页面请求:首页向 15 个第三方域发出了 30 个请求,其中一个来自模板遗留的 browser-update.org,会把访客 IP 与 UA 交给外部服务。附审计脚本与自查清单。 10月24日 1536 字 | 8 分钟
首屏从 392KB 砍到 59KB,FCP 从 7.4 秒到 2.1 秒 用 CDP 模拟中端手机实测博客首页:GA4 与 Clarity 挤在关键路径、头像和 favicon 直接加载 107KB 原图、312KB 关键 CSS 拖慢首屏。四处改动后传输 392KB→59KB,FCP 7.4s→2.1s,长任务 13→2 个。 10月24日 10月24日 2347 字 | 12 分钟
博客 SEO 自我体检:27 个页面里揪出四个系统性毛病 不靠站长后台,直接扫构建产物做 SEO 体检:发现全站 h1 数量为 0、28 个页面都没有 og:image、静态页共用同一段描述、404 页输出了两份 head。附体检清单与修法。 10月24日 2808 字 | 14 分钟
静态博客怎么显示每篇文章的浏览量:从 D1 读数接口到前端排序的完整链路 静态站没有后端,文章卡片上的浏览量到底从哪来?这篇拆我自己这套链路:D1 里只有 pathname + views 两列、两个读接口的分工、前端如何一次批量取数并先藏后显避免抖动、列表页按热度排序的索引对齐,以及防刷与缓存口径的取舍。 10月5日 10月6日 7017 字 | 35 分钟
给静态博客的单篇文章上密码:构建期加密与浏览器解密 静态站没有服务端,密码保护只能靠真加密:构建期用 PBKDF2-HMAC-SHA256 派生密钥、AES-256-GCM 加密正文,产物里只剩盐、IV 和密文。这篇讲清参数取舍、公开仓库的明文隔离、元数据泄露清单与解密后要重跑的初始化。 10月5日 4699 字 | 23 分钟
静态博客的站内搜索是怎么做的:一份 JSON 索引加自己写的打分 静态站没有后端,站内搜索只能在前端想办法。这篇拆开本站实现:构建期把 Markdown 压成一份 51 KB 的 search.json,浏览器整份拉下来逐字段数命中次数,再按日期排序。附实测的索引体积构成、逐字输入的重取代价与踩过的坑。 10月5日 4107 字 | 21 分钟
给每篇文章加「更新记录」:用 git 提交历史自动生成文章修改时间线 文章页底部那块「更新记录」不是手写的:构建前用脚本读 git log 生成 JSON,页面再按 slug 查表渲染。本文拆开这条链路,讲清 fetch-depth 0 为什么是硬前提、浅克隆会怎样把一条无关提交按到所有文章头上,以及行内 diff 编辑器的取舍。 10月5日 4411 字 | 22 分钟