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
This commit is contained in:
1 parent
836743b16d
commit
571d552c9d
6 files changed
+355
-61
No files matched your search
@@ -55,23 +55,15 @@
|
||||
|
||||
hugo version
|
||||
|
||||
# ── /conf 快照(评论首屏优化)────────────────────────────────────
|
||||
# 构建期拉一次 Artalk 的 /conf 落到 data/,Hugo 会内联进每个页面。
|
||||
# 前端据此对匿名 /conf 请求本地合成响应 —— Artalk 内部 conf 与评论列表
|
||||
# 是严格串行的,省掉这一跳等于首屏少一整个跨境往返。
|
||||
# 服务端这份 conf 只由 settings 表决定(唯一因人而异的 imgUpload 由前端
|
||||
# 按登录态放行真实请求),所以匿名访客的快照人人相同。
|
||||
# 拉取失败一律降级:删文件 → 模板不内联 → 前端自动走原生远程请求。
|
||||
# 绝不让它拖垮构建(在 if 条件里失败不会触发 set -e)。
|
||||
mkdir -p data
|
||||
if curl -fsS --max-time 30 --retry 1 --retry-delay 2 \
|
||||
"https://api.200181.xyz/api/v2/conf" -o data/artalk_conf.json \
|
||||
&& python3 -c "import json;json.load(open('data/artalk_conf.json',encoding='utf-8'))"; then
|
||||
echo "✅ conf 快照就绪 $(wc -c < data/artalk_conf.json | tr -d ' ') 字节"
|
||||
else
|
||||
rm -f data/artalk_conf.json
|
||||
echo "⚠️ conf 快照拉取失败,已降级为运行时远程拉取"
|
||||
fi
|
||||
# ── 构建期数据快照(评论 conf / 友链 / 友圈)────────────────────
|
||||
# ★ 这里必须用「先 curl 落盘、模板再读本地文件」,**不许**模板里
|
||||
# 用 resources.GetRemote:那是「渲染过程中发网络请求」,footer 每页
|
||||
# 都要走一遍,构建节点到 Cloudflare 一抖动就会重试到撞穿 Hugo 的
|
||||
# partial 30s 超时 → 整站构建失败(2026-10-04 实测白等 14.5 分钟)。
|
||||
# 改成快照后最坏只是数据为空,构建永远不挂。
|
||||
# 详见 scripts/fetch_snapshots.sh 顶部注释。
|
||||
# 脚本内部对每个快照都做了「拉失败就删文件」的降级,且恒 exit 0。
|
||||
bash scripts/fetch_snapshots.sh
|
||||
|
||||
python3 scripts/add_draft_to_hidden.py
|
||||
rm -rf public resources/_gen
|
||||
|
||||
Reference in new issue
Block a user