Commit Graph
3 Commits
Author SHA1 Message Date
zqlit 50a906e07c perf(comments): 评论加载提速 + 骨架屏 + 友链弹窗 pjax 修复 + toast 统一 Message.js
优化:
- initArtalk 加节点级幂等守卫(mount.__atkInited,失败回滚),
  消除 artalk.html/mypjax 多入口导致的 4× comments + 4× pv 重复请求
- fetch 包装层对无 body 的 GET/HEAD 去掉多余 content-type,
  消掉 Artalk 对 GET /comments 的 CORS 预检(按完整 URL 缓存,
  每篇文章都重付一次 RTT)。实测评论列表 +1150~1565ms → +626ms

修复:
- 评论列表骨架屏改注入 .atk-list-body(原骨架在 #Comments 内,
  被 Artalk.init 清空),list-loaded/故障/12s 兜底移除
- 友链申请弹窗抽成 modules/friendlink.js 进 page-only bundle
  (原内联脚本在 #pjax-container 外,pjax 后 flApplyOpenModal 未定义)
- toast 统一走本地化 Message.js/Qmsg 适配层(保留 window.Toast/showToast 旧 API)

文档:
- README / 架构总览 更新;新增 评论加载优化方案.md
2026-10-04 15:00:52 +08:00
zqlit 9e972f2b61 ci: 修 CNB docker build 上下文(by 必须列出 bin/linux/hugo)
首跑失败在镜像构建:
  COPY bin/linux/hugo /usr/local/bin/hugo
  ERROR: failed to compute cache key ... "bin/linux/hugo": not found

根因(CNB 官方文档原文):docker build 的构建上下文里「只包含 Dockerfile
和 by 声明的文件」,未出现在 by 列表中的文件在构建时一律视为不存在。
原配置 by:[package.json] 既漏了 hugo 二进制,又列了个 Dockerfile 根本
没 COPY 的 package.json。

改为 by: [bin/linux/hugo] / versionBy: [bin/linux/hugo]。
2026-10-04 13:07:31 +08:00
zqlit bcc2236bde ci: 迁移到 CNB 流水线(.cnb.yml)+ 零依赖邮件通知
- .cnb.yml:6 个 stage 顺序执行(Hugo 构建 → 又拍云 sync → 又拍云 purge →
  多吉云刷新 → EdgeOne 部署 → 上报状态);push 与每日 09:00 定时任务
  共用同一组 stage(YAML 锚点),失败通知走 failStages
- 又拍云保持「非阻断但如实上报」:allowFailure 沿用原版 continue-on-error
  语义,国内线路直传失败不拖垮境外线路
- scripts/send_mail.js:零依赖 SMTP 发信(node net/tls,465 隐式 TLS +
  587 STARTTLS),变量名沿用 MAIL_USERNAME / MAIL_PASSWORD
- 密钥经 imports 从密钥仓库 zqlit/blog-secrets 注入(共 10 项)
- .gitignore:补 cnb-secrets.yml 本地粘贴草稿(含真实令牌,不入库)

原 GitHub Actions 里的 artifact 传递 / COS 中转 / 广州机 sync.sh 轮询
整条链在此不再需要 —— 其唯一根因是 runner 在境外,CNB 节点在国内。
2026-10-04 12:56:05 +08:00