服务端 D1 额度用尽时同屏会出现三层重复提示,且故障态会被定期误解除。 - 提示从三层收敛为两层:横幅只留一句极简状态(⏸ 评论暂停中,预计明早 8:00 恢复), 卡片是唯一详细说明并紧贴编辑器;删掉「点击编辑器再弹一遍 toast」 - 修 bug:恢复判定原来过于宽松,任何 conf/comments/captcha/votes/pages 请求成功都算恢复; 但 /captcha/status 走 KV 不读 D1,60s 探针恒成功 → 故障态每 60s 被误撤,编辑器看似正常 实则列表还挂着。现在恢复只认评论列表本身成功,探针改用 GET /comments?limit=1(真读 D1) - 故障态不再灰化编辑器(opacity+grayscale 观感很差),只禁交互,原因由横幅说明 - 服务端 errors.ts 文案去掉与卡片标题重复的「评论服务暂时不可用」前缀 - 新增本地调试开关:仅 localhost 下 ?atk_svc=<code> 强制进入故障态,便于排查,生产不生效 改动文件:themes/Ying/assets/js/modules/artalk.js、blog-admin/src/lib/errors.ts (errors.ts 需下次部署 Worker 才在线上生效,前端已做旧文案兼容清洗)
- 人机验证抽成 human.js 模块,改成 Cloudflare Turnstile 风格的「点一下验证」, 控件移到「评论一下」发送按钮左侧(不再用图形验证码那一套) - 留言页 / 文章页两段内联脚本(友链弹窗、人机验证)抽成模块随 page-only.js 加载。 原先内联 <script> 写在 #pjax-container 外,PJAX 只换容器内容不重新执行它, 从首页 PJAX 进留言页会出现「申请友链卡片点了没反应」「没有人机验证控件」 - 友链申请弹窗 #flApplyBox 隐藏滚动条(内容仍可滚,避开细滚动条 + 毛玻璃的割裂感) - 内容分割线抽成 partial divider.html,hugo.toml [params.divider] 可切 icon(原生 uk-divider-icon)/ image(本地图片),当前用 icon - 投票契约修复(后端 blog-admin):Artalk 客户端把方向编在 target_name 后缀 (comment_up / comment_down / page_up / page_down)、路径只有两段, 而原先只注册了三段 :choice 路由 → 点赞/踩一路 404、界面点了没反应。 补 POST /votes/:target_name/:target_id,新增 parseVoteTarget() 同时兼容两套契约 (名字里与路径里方向矛盾时判非法,不静默取其一),错误文案改用实体名 - 无身份点赞不再静默失败:artalk.js 加 __atkVoteGuard, 未填昵称/邮箱时拦截并提示「填写昵称和邮箱后才能点赞」, 同时把光标送到昵称框(多个同名输入框逐个试,以 focus 真生效为判据)