Commit Graph
57 Commits
Author SHA1 Message Date
zqlit c1f9a0c6f0 fix(ci): 全量刷新判定改为「非纯内容改动即全量」+ 刷新分批(又拍云 50/次)
上一版用「themes/layouts/assets 等 dirs 白名单」判全局,实测被绕过:
build 2 的 diff 只有 scripts/purge_list.js(主题改动在上一个 commit),
判成非全局 → 只刷了 10 条固定入口页 → 文章页仍引用已被 --delete 删掉的
旧 page-only.min.1e47477b…(靠 CDN 缓存才 200,缓存一过期即 404)。

改法:
- 判定反转:diff 只含 content/** 才算「纯内容改动」(走精细刷新),
  其它一律全量刷 public 下所有 .html。
- 拿不到基线时:push 事件按全量(宁多刷不漏刷),定时任务只刷固定入口页。
- 输出一行 stderr 诊断(base/变更数/纯内容/全量/清单条数)便于事后核对。
- .cnb.yml:清单按 50 条/批 + 批间 6s 调用 upx purge(又拍云限制
  单次 ≤50、每分钟 ≤600),并逐批打日志;不再一次性提交 1300+ 条。
2026-10-05 17:57:51 +08:00
zqlit 5a50df6e23 fix(ci): 主题/layouts/assets 等全局改动时,purge 清单追加全站 HTML
问题:模板用 resources.Fingerprint 生成带 hash 的 JS/CSS 文件名,而 upx sync
带 --delete(远端不存在的文件会被删)。只改主题、不动 content/*.md 时,
purge_list 只输出固定入口页 + content 页 → 文章页的 HTML 仍留在 CDN(TTL 8 天),
里面引用的是**已被删掉的旧指纹 JS** → 评论区/交互断链(实测文章页仍引用
page-only.min.1e47477b…,该文件本轮已不在源站,只是还在 CDN 缓存里)。

修法:diff 命中 themes/ layouts/ assets/ static/ data/ archetypes/ 或
hugo.toml/config.* 时,walk public/ 把所有 .html 加入刷新清单
(本机验证 1336/1336 覆盖)。
2026-10-05 17:39:59 +08:00
zqlit 66c27c7b62 fix(ci): CDN 刷新清单改为「固定入口页 + 本次改动过的内容页」
又拍云对 HTML 的 max-age 是 8 天,而流水线只刷固定白名单(/ sitemap rss
archives posts comment links)。不在清单里的页面改动后,源站已更新、CDN 仍发
旧副本——本次 about.html 就卡住了(源站 47935B 含新板块,CDN 仍是 41454B)。

- 新增 scripts/purge_list.js:读 git diff 找出改动的 content/*.md,按
  slug/url/目录名/文件名推输出页,并校验 public/ 下确实存在才加入
- .cnb.yml 刷新步骤改用它,脚本失败时兜底只刷首页
- git diff 必须带 -z / core.quotepath=false,否则非 ASCII 路径会被转义引号包裹,
  校验必然失败(本次踩过)
2026-10-05 12:19:28 +08:00
zqlit 571d552c9d fix(build): 消除构建期远程拉取隐患 + 评论提交反馈 + 友链卡片移动端
构建隐患(本次丢构建的根因)
- footer.html 用 resources.GetRemote 在每个页面渲染时拉 api/links 与 api/feeds,
  构建节点连不上 Cloudflare 时重试撞穿 Hugo partial 30s 超时 → 整站构建失败
- 改为「流水线 curl 快照 + 模板读本地文件」:
  · 新增 scripts/fetch_snapshots.sh,一次拉齐 conf / friend_links / friend_feeds
    (--max-time 30 --retry 2,JSON 校验,失败一律删文件且恒 exit 0)
  · .cnb.yml Hugo 构建 stage 改为调用该脚本
  · footer.html 改读 site.Data.friend_links / site.Data.friend_feeds,缺失渲染空值
  · .gitignore 忽略 /data/friend_links.json 与 /data/friend_feeds.json
- 降级实测:删掉快照后构建仍 EXIT=0,产物 friendLinks 为空数组

评论提交反馈(artalk.js 新增 __atkSubmit 模块)
- 校验:config.beforeSubmit 拦下 内容空 / 昵称空 / 邮箱空 / 邮箱格式错(网址不校验)
- 发送中:editor-submit 常驻 loading,超 7s 补「网络较慢」
- 成功:editor-submitted 按 normal/reply/edit 分文案,is_pending 提示等待审核
- 失败:拦 POST /api/v2/comments,403/429/4xx/5xx/网络异常全部翻译成人话
- 失败时输入内容保留,并清掉 Artalk 自带的重复小字通知
- 无头浏览器实测 19/19 通过(POST 走 mock,未向线上写数据)

友链申请卡片移动端
- max-width:640px 下隐藏 .atk-fl-nick(昵称 + 博主徽章),桌面端不变

改动:6 files, +282 / -61
2026-10-04 17:38:04 +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
zqlit e0218b42bb docs: 迁 CNB 前的架构决策文档 + 构建骨架
- 决策文档:架构总览 / 代码源与构建平台选型 / CNB构建落地方案 /
  EdgeOne双区域 / Gitee / 阿里云ESA / 精简方案
- CNB 构建骨架:deploy/Dockerfile、bin/linux/hugo
  (84MB,linux/amd64 extended 0.128.2,供 CNB 容器 COPY 用)
- scripts/setup-cnb-remotes.sh:双远端切换(CNB 主仓 + GitHub 备份)
- .gitignore 补 .workbuddy/(工作数据不入库)
2026-10-04 12:40:17 +08:00
QunLIn 20869a3c45 RSS API 地址全部收敛到 hugo.toml [params.rssapi],切到 api.200181.xyz
Deploy to Production / pre-check (push) Successful in 2m0s
Deploy to Production / build (push) Successful in 9m9s
Deploy to Production / deploy-edgeone (push) Successful in 4m3s
Deploy to Production / finalize (push) Successful in 29s
Deploy to Production / notify-failure (push) Skipped
- 新增 [params.rssapi] base 配置,主题 7 处硬编码改为读配置:
  head(preconnect+window.rssApiBase)、footer(构建时拉 links/feeds)、
  render-link(favicon)、circles/links 页 fetch、linkify.js(读 window.rssApiBase)
- scripts/fetch_greetings.js 支持 RSS_API_BASE 环境变量,默认新地址
- scfapi.usj.cc(国内代理)保持不变
2026-10-03 01:19:02 +08:00
zqlit 33d54453d7 fix(ci): 用 Python 重写 pre-build 脚本,替换 PowerShell 依赖
Deploy to Production / pre-check (push) Successful in 29s
Deploy to Production / build (push) Failing after 23m24s
Deploy to Production / deploy-edgeone (push) Skipped
Deploy to Production / deploy-upyun (push) Skipped
Deploy to Production / finalize (push) Skipped
Deploy to Production / notify-failure (push) Successful in 4s
Gitea 自建 runner 镜像不含 PowerShell,导致 Run Pre-Build Scripts
以 exitcode 127 失败。改用 Python 3(GitHub/Gitea runner 均预装),
跨平台通用,迁回 GitHub 无需改回。
2026-09-30 22:50:43 +08:00
Vaica 5651d494ba 1507 2026-06-25 15:07:25 +08:00
Vaica 2fbf2e3d82 1448 2026-06-25 14:48:46 +08:00
Vaica c0114c6882 Update deploy_upyun.sh 2026-06-25 14:06:32 +08:00
Vaica 84ad9e5b03 Update deploy_upyun.sh 2026-06-25 14:02:29 +08:00
Vaica 179fec3a3d Update deploy_upyun.sh 2026-06-25 13:58:18 +08:00
Vaica f19d91039a 1353 2026-06-25 13:53:18 +08:00
Vaica a01312d104 13.32 2026-06-25 13:32:44 +08:00
Vaica c8470cf603 1317 2026-06-25 13:17:45 +08:00
Vaica 8800dd4907 0030 2026-06-25 00:30:25 +08:00
Vaica 4c1f23d97e 0019 2026-06-25 00:19:54 +08:00
Vaica 0be8aa9668 2308 2026-06-24 23:08:35 +08:00
Vaica f5b711181e fix: 优化字体子集化脚本,确保特殊字符不丢失
- 添加特殊字符检测
- 强制添加缺失的特殊字符
- 增强调试信息
2026-06-03 15:18:09 +08:00
Vaica 80940b0316 feat: 添加古风官职特殊字符 + 优化字体子集化脚本
字符添加:
- 添加破折号(—)
- 添加庶、尉、谏、簿、丞
- 确保古风官职文本完整显示

脚本优化:
- 修改subset-font-safe.py,保留现有字符
- 合并新提取的字符,避免覆盖手动添加的字符
- 字体大小:740.7 KB(减少39.6%)
2026-06-03 14:53:56 +08:00
Vaica 5a00965c1a feat: 添加古风官职字符到字体子集
- 添加破折号(—)
- 添加庶民、太尉等特殊字符
- 字体大小增加3KB(757KB → 760KB)
2026-06-03 13:53:12 +08:00
Vaica 0e17553a19 docs: 清理Ying主题冗余文档
- 删除20个优化相关文档
- 已整理到 docs/性能优化文档/ 文件夹
- 保留 README.md 和 archetypes/post.md
2026-06-03 13:37:53 +08:00
Vaica 630239960e perf: 完整性能优化 - JS按需加载 + 字体子集化 + 自动化 2026-06-03 13:03:17 +08:00
Vaica bcd4bc9282 rename content/post to content/posts 2026-06-02 15:37:49 +08:00
Vaica 791be8bd4f 精简若干功能,优化slug生成规则 2026-06-02 11:43:58 +08:00
Vaica 2c6bd1c964 优化github action 逻辑 2026-06-02 10:56:59 +08:00
zqlit 331af9074a 修复bug 2026-05-24 19:58:07 +08:00
zqlit 9529e49b96 修复若干问题 2026-05-21 13:45:17 +08:00
zqlit 993ac5581d 修复若干问题 2026-05-20 15:33:10 +08:00
zqlit 91a55bc10f 优化一下GitHub action 输出 2026-05-20 14:42:30 +08:00
Vaica 3948fb7820 3.13 2026-03-13 12:24:47 +08:00
Vaica 6bbd6f6c1f Update generate_notification_report.js 2026-03-01 20:29:23 +08:00
Vaica 7ffb7b128c fixed 修改slug链接 2026-03-01 11:48:36 +08:00
Vaica e192634dfe 2026.3.1 2026-03-01 09:42:39 +08:00
Vaica ed0a7f812f Update generate_circle_data.js 2026-03-01 09:27:18 +08:00
Vaica 6434705390 fixed 国际版部署edgeone较慢的原因 2026-02-08 18:48:45 +08:00
Vaica d65d6d94c7 fixed 部署友圈bug 2026-02-01 13:54:49 +08:00
Vaica d341f8ac89 Update generate_circle_data.js 2026-02-01 13:47:51 +08:00
Vaica 7dad54d798 fixed 部署通知 2026-02-01 13:42:02 +08:00
Vaica d13c6e4d85 fixed 修复构建速度 2026-02-01 13:25:16 +08:00
Vaica 327cdeb818 缩减体积 2026-02-01 13:10:31 +08:00
Vaica 5f50d483cc Create RefreshCDN.py 2026-02-01 12:07:49 +08:00
Vaica ba93d0faa4 fixed 文章结构 2026-02-01 11:55:50 +08:00
Vaica 39b17bc39d fixed 友联监测bug 2026-01-31 15:14:57 +08:00
Vaica f1865dca6c added 文章一篇 2026-01-30 23:07:58 +08:00
Vaica 0f7be7d270 added ai评论 2026-01-30 21:11:05 +08:00
Vaica eddfac9a7b fixed 删除多余的脚本文件 2026-01-25 16:13:14 +08:00
Vaica 371ec8adca fixed 关于页面bug 2026-01-22 21:26:48 +08:00
Vaica 744d6cce8b fixed 友圈bug 2026-01-21 23:18:35 +08:00