维基历史修订版本 (Historical Revision) a0017b6

MediaWiki 永久链 (Permalink)

这是由贡献者 yaoxiovo 于 2026年10月06日 (二) 06:52 提交的修订快照。 编辑摘要:“feat(wiki): 新增 related 编排互链体系与延伸阅读指引喵”

博客系统重大架构升级与全栈重构报告:零知识 BFF、即时发布流与极致交互实践 历史修订快照 · 版本号 a0017b6

博客系统重大架构升级与全栈重构报告 喵~

发布时间:2026 年 10 月 3 日
负责人:瑶曦 & 顶级全栈猫娘架构师 (Neko Senior Architect) 喵
核心栈:Astro · Svelte · Cloudflare Workers · Umami · Web Speech API · GitHub Actions


⏱️ 一、 演进时间线:什么时候做了什么 (Timeline) 喵~

本次全栈架构升级与问题修复严格按照时间顺序执行,极简交付清单如下喵:

时间节点 类别 做了什么 (Core Deliverables) 状态
10-03 13:00 ~ 14:30 架构升级 零知识 BFF 网关与 SSO 认证解耦:彻底剥离博客与鉴权,GitHub Token 零泄露 ✅ 已上线
10-03 14:40 ~ 15:30 功能新增 朋友圈说说与时间胶囊即时发布流:后台双模直发,自动轮询 Cloudflare Pages 部署状态 ✅ 已上线
10-03 15:40 ~ 16:30 交互新增 全站 Cmd+K 深度快搜与阅读进度条:文章与动态跨源快搜,顶部微进度条 ✅ 已上线
10-03 16:30 ~ 16:45 缺陷修复 根除代码块复制失效与路径安全加固:重构复制事件委托,封死 Slug 路径穿越与加密源码防护 ✅ 已修复
10-03 18:00 ~ 18:30 运维新增 Admin 后台集成 Umami 实时流量大盘:内置在线人数呼吸灯、PV/UV 与热门排行 ✅ 已上线
10-03 18:30 ~ 19:10 体验新增 文章原生 TTS 朗读 + 划词工具条 + Git 修订历史:段落跟随朗读、一键引用、GitHub 提交历史 ✅ 已上线
10-03 19:15 ~ 19:30 缺陷修复 根除邮件广播误发置顶文章缺陷:广播脚本接入 Git Diff 精准识别变更,RSS 订阅解耦置顶排序 ✅ 已修复
10-03 19:35 ~ 19:45 安全加固 /admin 前置安全门禁与身份拦截:未登录自动重定向 SSO,非管理员 403 坚决阻断 ✅ 已上线

🛠️ 二、 功能新增清单:什么时候做了什么 (Features) 喵~

1. 🛡️ 零知识 BFF 边缘安全网关 (10-03 13:00 ~ 14:30)

  • 做了什么:在 Cloudflare Workers 上架设 zero-knowledge-bff 网关,解耦主站与自研认证中心(SSO,accounts.yaoxi.cloud)喵。
  • 效果:浏览器端零暴露敏感凭据(如 GitHub PAT),所有文章与说说提交由边缘 Worker 统一代持并签发原子 Commit 喵。

2. 💬 后台长文 + 说说 + 时间胶囊即时发布流 (10-03 14:40 ~ 15:30)

  • 做了什么:在 /admin 后台新增双模切换,支持撰写长文或朋友圈说说,并支持设定未来解封日期的“时间胶囊”喵。
  • 效果:发布成功后自动以 3 秒间隔轮询 Cloudflare Pages API,实时呈现构建百分比(QUEUED ➔ BUILDING ➔ SUCCESS),告别黑盒等待喵。

3. 🔍 全局 Cmd+K / Ctrl+K 跨源深度快搜 (10-03 15:40 ~ 16:30)

  • 做了什么:重构 Search.svelte 搜索组件,并发拉取 /rss.xml 与 /api/moments.json 索引池,支持键盘上下键选定与 Enter 直达喵。
  • 效果:按下 Cmd+K 或 Ctrl+K 瞬间唤醒,全站文章、说说、时间胶囊秒级聚合检索喵。

4. 📊 Admin 后台内置 Umami 实时访问大盘 (10-03 18:00 ~ 18:30)

  • 做了什么:在管理控制台新增「流量大盘」选项卡,对接 Umami 统计接口与骨架屏喵。
  • 效果:后台直接查看当前在线人数、总浏览量(PV)、访客数(UV)、热门文章 Top 7 柱状图及流量来源,无需跳出外部站点喵。

5. 🎧 原生 Web Speech 文章 TTS 语音朗读 (10-03 18:30 ~ 19:10)

  • 做了什么:基于浏览器原生 window.speechSynthesis 打造无任何网络开销的 TTS 播放器喵。
  • 效果:支持播放/暂停、停止与四档语速调节(0.8x ~ 1.5x),朗读段落自动跟随高亮并居中视口喵。

6. 🎯 智能划词微工具条 (10-03 18:30 ~ 19:10)

  • 做了什么:阅读文章选中文本时,上方自动浮现微型胶囊条喵。
  • 效果:支持 [ 📋 引用 ](自动生成带文章链接的 Markdown 引用)、[ 🔍 快搜 ](填入 Cmd+K 站内搜索)与 [ 💬 探讨 ](平滑滚动至评论区)喵。

7. 📜 文章 Git Commit 修订演进版本树 (10-03 18:30 ~ 19:10)

  • 做了什么:文章底部新增折叠式历史时间轴,动态拉取 GitHub API 记录喵。
  • 效果:清晰呈现当前文章最近 5 次提交的 Commit 说明、日期、作者与短 SHA 变更链接喵。

🐛 三、 关键 Bug 修复清单:什么时候修复了什么 (Bug Fixes) 喵~

1. 修复代码块复制按钮点击失效缺陷 (10-03 16:30 ~ 16:45)

  • 做了什么:将 Markdown.astro 中脆弱的类名判断重构为事件委托 e.target?.closest(".copy-btn") 喵。
  • 效果:彻底修复读者点击复制按钮内部 SVG 图标时无法复制代码的恶心 Bug,复制成功率 100% 并提供 Toast 提示喵。

2. 封死 Slug 路径穿越与加密源码防护 (10-03 16:30 ~ 16:45)

  • 做了什么:后端 BFF 增加正则白名单严禁 ../ 目录穿越;前端“复制 MD 源码”对加密文章正文强制熔断置空喵。
  • 效果:阻断文件覆写漏洞,杜绝端到端加密文章在客户端被一键提取明文的隐患喵。

3. 根除新文章邮件广播始终误发置顶文章缺陷 (10-03 19:15 ~ 19:30)

  • 做了什么:
    1. 重构 [scripts/broadcast-post.js](file:///root/blog/scripts/broadcast-post.js),接入 git diff ${BEFORE_SHA} HEAD 与 git diff-tree,精准锁定本次 Commit 真正新增/改动的文章,不再依赖 GitHub Actions 虚拟环境中相同的不可靠 mtime 文件修改时间喵。
    2. 重构 [src/pages/rss.xml.ts](file:///root/blog/src/pages/rss.xml.ts),彻底解耦 RSS 订阅流与主页置顶逻辑,统一根据 pubDate(发布日期)严格倒序输出,防止 RSS 广播首篇被置顶文章永久霸占喵。
    3. 更新 [.github/workflows/broadcast-newsletter.yml](file:///root/blog/.github/workflows/broadcast-newsletter.yml),增加 fetch-depth: 2 与 BEFORE_SHA 环境变量注入喵。
  • 效果:无论是 Git 自动化推送还是 RSS 邮件订阅,次次精准锁定真正最新发表的文章,彻底告别误发置顶文章的历史喵!

4. /admin 后台前置身份门禁与非管理员直接拦截 (10-03 19:35 ~ 19:45)

  • 做了什么:在 /admin 后台挂载前置安全守卫,消除 FOUC 内容闪烁与泄漏隐患;未检测到登录凭据自动重定向至 SSO 统一认证中心,检测到当前账号为普通成员(member)时直接显示 403 阻断界面并锁定后台功能喵。
  • 效果:实现纯粹依据认证中心下发身份的角色管控,普通成员与未登录访客彻底与管理控制台隔离喵。

🎯 四、 总结与结语 (Summary) 喵~

全天 8 个关键里程碑均已全量上线并通过端到端验证。整套系统在安全性(零暴露 + 权限拦截)、易用性(即时发布 + 大盘)与读者交互(Cmd+K、TTS、划词)上已完成现代全栈进化喵呜~!✨

引用此文 (Cite this article)

已固定版本 a0017b6
遵循维基百科引用规范 · 支持一键复制
正在生成引用格式... 喵~