今天新增了头像下方的联系入口,并开始用每日维护说明记录博客的调整。

头像下方新增联系按钮

  • 保留原有的 B 站按钮及其链接。
  • 新增 GitHub、QQ 和 微信三个按钮,沿用 B 站按钮的宽度、圆角与悬停效果,并配上各平台图标。
  • 初次新增时仅展示外观,随后补充了 GitHub 与 QQ 的目标地址;微信二维码尚待补充。

开始记录每日维护更新

从今天起,博客的每次修改都会记入维护更新文章,统一使用「维护更新」标签。

每天保留一篇维护说明,同一天有多次调整时,在当天文章中继续追加,方便集中查看当日的变化。

联系按钮配色与跳转

  • 四个按钮分别使用 B 站粉、GitHub 深灰、QQ 蓝与微信绿。
  • GitHub 按钮连接到 wzsedgsa 的个人主页。
  • QQ 按钮指向 1079483731 的个人资料卡,在电脑和手机上分别尝试唤起对应客户端。
  • 微信按钮保留占位,等待补充个人二维码。

评论功能排查与更换方案

原评论系统返回「应用已归档」错误,暂时无法正常读取和提交评论。

新的评论方案选用 Waline + Vercel + Neon PostgreSQL,目标是让访客无需注册账号即可留言,并将评论保存在独立数据库中,不再依赖原评论存储服务。

独立数据库初始化与评论后端部署已完成,作者已领取管理员,稳定生产 API 已公开。备份工作区接入与预览验收已通过,作者随后确认并要求正式发布。新方案不依赖 LeanCloud,历史评论迁移仍待处理。

评论服务部署与当前状态

  • 完善独立 Waline 服务的部署与验收材料,固定服务端及客户端版本;补齐主站与 GitHub Pages 备用入口的来源白名单。
  • 数据库连接和登录签名密钥仅保存在评论服务后端;博客前端只使用公开服务地址,不包含数据库凭据。
  • 按用户要求,新评论默认免审核、提交成功即公开;昵称必填、邮箱选填、访客无需登录。未来有需要再开启审核,并同步调整提示文字。
  • 已通过 Neon 创建独立评论数据库,位于新加坡区域;确认空库后,以一次事务完成三张表和三个序列的初始化,检查时三张表均无记录。

Vercel 的 APR 工作区(地址标识为 apr10)已通过所有者完成的官方 CLI 设备授权连通,并确认项目管理权限。独立评论后端已在新加坡区域完成部署,稳定入口为 aprmc-comments.vercel.app。作者已领取首个管理员账号,稳定生产 API 已开放;独立部署 URL 与预览仍保留保护。

首次部署出现字体资源遗漏导致的启动错误,已补齐打包规则并重新部署,同时确认评论函数实际运行于新加坡区域。真实匿名留言已写入数据库,并在初次审核模式验收中按作者同意公开;管理员回复与父子关系正确,主站和备用站来源均可读取同组评论,非法来源返回 403。

随后按作者要求完成免审核配置与重新部署。新的匿名留言无需审核即公开,旧留言与管理员回复在重新部署后仍可读取,持久化已通过真实验证。备份工作区通过现有 Butterfly 原生 Waline 配置及必要的文章路径处理接入,保留博客界面、美术风格、布局及特效。360px、768px、1440px 的真实浏览器已验证正常评论编辑器与列表/计数接口,昵称必填、邮箱选填、无访客登录按钮,无横向溢出或 JavaScript 异常;中文文章普通与 index.html 入口读取同一评论路径。失败提示与资源加载重试采用局部处理,已分别阻断 API、CSS、JS 验证失败提示及按钮,正文与导航不受阻塞、无横向溢出;恢复后点击相应重试或刷新页面按钮,真实接口均恢复 HTTP 200、无错误。作者已确认本次预览并要求正式发布,按确认版本接入正式博客;旧评论迁移与邮件功能仍待单独处理。

新增评论系统操作提醒

在备份工作区根目录新增 COMMENT-SYSTEM.md,并在 AGENTS.md 与服务 README 中放入入口,方便其他维护人员或 agent 独立读取。手册记录现有资源与版本、请求和路径规则、通用 CLI 部署、免审切换、凭据保护、域名变更、真实验收与故障恢复;明确不能重建已有数据库、不能因代码回滚删除评论,也不能跳过预览确认直接复刻或上线。

提醒文件随本次已确认的接入改动一并保存到正式目录,供后续维护使用。

微信提示、QQ 入口与旧预览清理

  • 微信按钮点击后显示提示「啊呀,微信暂且还未公开」。保留原有颜色、位置和样式,不再仅作无反馈占位。
  • QQ 按钮在电脑和手机上统一使用腾讯官方 HTTPS WPA 入口,保留原有颜色与位置。本机已检查到 QQ 协议处理程序注册及程序文件,但没有擅自打开客户端;真实唤起效果仍需用户点击预览确认,不能把配置检查等同于已成功唤起。
  • 按用户要求清理 6 个过时预览产物:两张旧头像按钮截图、旧评论截图、旧评论诊断结果、旧验证结果以及旧失败截图。保留当前生成页面、最新验收证据、恢复备份、工具依赖和部署运维授权材料。

以上改动已获作者确认,本次按此版本执行正式复刻与发布。

正式接入与发布

作者查看本地预览后明确要求正式发布。本次发布将已验证的 Waline 评论、微信提醒与 QQ 官方入口接入正式博客,保留现有主题、美术风格、布局及特效。复刻前备份相关正式文件,保留其他已有改动;仅发布生成的静态网页,数据库、授权资料、草稿及预览目录不进入公开仓库。发布后分别核对 Netlify 主站和 GitHub Pages 备用入口。

B 站账号更换

作者卡片的B 站主按钮与侧栏社交图标同时指向新账号 3706943447239294,原账号 3546699815454761 不再使用。顺手去掉了链接尾部的 ?spm_id_from=333.1007.0.0 来源追踪参数——对外分享时它没有作用,保留反而像是复制来的地址。

QQ 入口改为点击复制号码

QQ 临时会话彻底走不通了,实测确认与配置写法无关:

  • wpa.qq.com/msgrd 会302 跳转到腾讯中转页,页面上只有「无法唤起?」;
  • wpa.qq.com/addfriend 直接返回「服务异常 / 无效临时会话链接」;
  • tencent:// 自定义协议能被识别,但 Chrome 与 Edge 的安全策略会将其判定为不安全链接并拦截。

根因是腾讯已把临时会话改为收费推广功能,需要企业资质在 QQ 推广平台申请,个人博客号的免费通道整体下线。目前不存在免费且能直接跳进QQ 聊天窗口的方案,因此把 QQ 按钮改为点击复制号码 1079483731,点击后按钮文字短暂变为「已复制」。复制动作优先使用 Clipboard API,并以 document.execCommand('copy') 兜底,因为 http 预览环境与微信内置浏览器中前者常常不可用。

若日后拿到腾讯官方生成的 qm.qq.com 临时会话链接,可替换回真实跳转;该形式是 HTTPS 不会被浏览器拦截,但手机能唤起、电脑端有时仍会失效。

本次改动文件与状态

改动共三个文件:_config.butterfly.yml(链接与按钮配置)、card_author.pug(新增 button.copy 分支)、author-contact.js(复制逻辑)。微信按钮的提示与样式未作任何改动。改动先在备份工作区完成预览验证,再复刻到正式目录,复刻前已备份被覆盖文件。