 wait4xandGLM-5.3
|
76b6b6b022
|
fix(polish): 视觉终审两阻塞+两建议——胶囊真挂载与图注字面量化
- 灯箱:.lb-act class+图标真实挂载(T1 的 python replace 对 i18n 化后
文案静默失配成死代码——replace 无 assert 的教训);清 560px 媒体
查询内整段重复规则
- 样张图注:斜体行内裸 <video>/<audio> 字面量化(markdown 渲染成
真元素:黑盒+吞文字);指南加图注警示
- Artalk 建议项:输入框边界加深一档(--line 白底近不可见);暗色
发送按钮换深字(白字压浅底 2.4:1 低于 AA)
验证: build 23 页;样张页 video 元素 2→1(幽灵元素消失);
node tests/e2e.mjs 30/30 PASS;复验图 18/19 待视觉确认
Spec: 2026-10-25_add-media-and-polish
Co-authored-by: GLM-5.3
|
2026-10-25 12:20:42 +08:00 |
|
 wait4xandGLM-5.3
|
80ab3ee3f3
|
feat(atalk): 评论区美化——CSS 加载缺陷修复与 tokens 主题接管(T2)
- 缺陷修复(op-gitea 车道发现):Artalk JS 不自动注入样式,评论区自
上线起一直跑 UA 默认样式——mount() 补挂 dist/Artalk.css,onload 后
init(失败降级不阻塞评论可用)
- 主题接管:18 个 --at-color-* 变量全套映射站点 tokens(var() 引用,
明暗随 [data-theme] 自动翻转);init 锁 darkMode:false 防双暗叠加
- 气质层:8px 圆角/squircle 头像/时间戳与 UA 转 JetBrains Mono/
正文链接 underline 纪律/弹层选择器 body 前缀提特异性
验证: build 23 页 exit 0;--at-color-main:var(--accent) 入产物;
生产页注入同款 CSS 探针矩阵全中(亮 #3454d1/暗 #8ea2ff);
双态截图 /tmp/e2e-shots/at-polish-{light,dark}.png 待视觉终审
Spec: 2026-10-25_add-media-and-polish
Co-authored-by: GLM-5.3
|
2026-10-25 12:08:10 +08:00 |
|
 wait4xandGLM-5.3
|
a4388df35e
|
fix(media): 详情页路径全量+prev/next 滤 hidden(op-artalk 车道指正)
- getStaticPaths 恢复只滤 draft:hidden 样张需出静态页(可访问不列出)
- prev/next 从 hidden 过滤后的导航数组取位:真实文章上下篇不链样张
验证: build 23 页;media-sample zh/en 双页产物在;/media/ 绝对引用 ✓;
首页与 RSS 零 media-sample 泄漏
Spec: 2026-10-25_add-media-and-polish
Co-authored-by: GLM-5.3
|
2026-10-25 11:53:22 +08:00 |
|
 wait4xandGLM-5.3
|
71a799bd97
|
feat(media): hidden 标签过滤与指南 public/media 约定(T5 补)
- 首页/归档/RSS(zh+en)集合查询统一 draft+hidden 双过滤——样张
永久保留为可访问不列出的活样例(回归测试资产)
- 写作指南视音频段更正:raw HTML 相对路径不走资产管线(实测),
媒体放 public/media/{slug}/ 用绝对 /media/ 引用,与仓外 store
同命名空间
验证: pnpm astro build exit 0(hidden 过滤后样张退出列表与 RSS)
Spec: 2026-10-25_add-media-and-polish
Co-authored-by: GLM-5.3
|
2026-10-25 11:50:53 +08:00 |
|
 wait4xandGLM-5.3
|
19ffcf180b
|
feat(media): 灯箱动作胶囊化与正文三媒样式段(T1/T3)
- 原图/下载:裸链 → 与 lbnav 同语言的胶囊按钮(图标+文字+暗底描边)
- global.css 媒体段:正文 img 圆角限宽、*斜体独立段*图注约定、
video/audio 全宽样式(raw HTML 直书方案,指南随后)
验证: pnpm astro build 21 页 exit 0
Spec: 2026-10-25_add-media-and-polish
Co-authored-by: GLM-5.3
|
2026-10-25 11:45:06 +08:00 |
|
 wait4xandGLM-5.3
|
59b7baae51
|
chore(spec): 归档 fix-site-polish——四缺陷+双轨验证六任务收敛
Spec: 2026-10-25_fix-site-polish
Co-authored-by: GLM-5.3
|
2026-10-25 11:30:40 +08:00 |
|
 wait4xandGLM-5.3
|
86e8009f34
|
fix(polish): en 首页按 zh 全结构重写——PostList locale 化与版面平权
- PostList 组件加 locale prop(轨道标签走字典、en 链接 /en/ 前缀)
- en/index 镜像 zh 结构:名片区三图标(GitHub/RSS/邮箱)+ 文章列表
+ 最新影像(latest-head space-between + 4 列瓷砖网格,修复上轮
粘连与整宽竖排两处硬伤)+ 热力图 + 项目墙,区块顺序与 zh 一致
- 闭环截图:zh 滚动至热力图锚点(修复验证缺口)
验证: pnpm astro build 21 页 exit 0;node tests/e2e.mjs 30/30 PASS
Spec: 2026-10-25_fix-site-polish
Co-authored-by: GLM-5.3
|
2026-10-25 11:23:30 +08:00 |
|
 wait4xandGLM-5.3
|
ebafa415b2
|
fix(polish): 视觉复核三轮——热力图末列可见与 en 首页版面平权
- 热力图:桌面 10px 格+2px 缝收进版心(53 列 634px 无横滚——唯一有
数据的最新列曾被裁在滚出区呈空表);移动端锚定 scrollLeft 到最新列
- en 首页补 IdCard 名片区 + Latest photos 影像条(视觉复核版面平权建议)
- en/index 重复导入 getCollection 修复(构建炸点)
验证: pnpm astro build 21 页 exit 0;node tests/e2e.mjs 30/30 PASS
(新构建全链)
Spec: 2026-10-25_fix-site-polish
Co-authored-by: GLM-5.3
|
2026-10-25 11:12:04 +08:00 |
|
 wait4xandGLM-5.3
|
e21fac7e1d
|
fix(polish): 视觉复核二轮六项——网格单一高度源/导航i18n/热力图缓存等
- 图库:li 去 aspect-ratio(与行跨度双高度约束竞争=列洞根因面),
img 改 object-fit cover 填满;截图前整页滚动触发懒加载
- Header:导航标签按 locale 取字典(en 页曾是中文);图标钮暗色
提色去底块(视觉复核 02/12 的灰块)
- 热力图:构建期模块级缓存,zh/en 两页共享一次抓取(en 页曾空格)
- en 首页移除机器翻译横幅(文章级标注才是本意);面板居中;计数器
文字投影
- Artalk E2E 报 fetch 失败定性为测试环境跨域(127.0.0.1 页面拉
wait4x.online API),生产同源不受影响——上线后专项验证
验证: pnpm astro build 21 页 exit 0;node tests/e2e.mjs 30/30 PASS
(新构建全链重跑,含滚动后 21/21 图库断言)
Spec: 2026-10-25_fix-site-polish
Co-authored-by: GLM-5.3
|
2026-10-25 10:57:16 +08:00 |
|
 wait4xandGLM-5.3
|
7a2880b65d
|
fix(polish): 上线四缺陷修复——明暗委托/灯箱常开/评论站点名/书评宋体
- 明暗切换:document 级委托(软导航换 DOM 后元素级监听全丢);
E2E 再抓一坑:SVGElement 非 HTMLElement 实例,守卫用 Element 基类
- 图库:#lb 无条件 display:flex 覆盖 UA 隐藏 → 灯箱"永远打开"盖全页;
改 #lb:not([open]) 显式 none;时间戳标题清空;灯箱打磨(切换钮
实底阴影/n/21 计数器/空标题隐藏/原图链接暗底亮蓝)
- 评论:site 'wait4x'→'wait4x.online' 对齐 Artalk 服务端(404 根因)
- 书评字体:文楷→思源宋(@fontsource 预分片);文楷降级金句 --font-kai
- 数据:21 张照片组修正 street→landscape(迁移器收到内部组 id 的坑)
- 新增 tests/e2e.mjs:Playwright 30 项全功能 E2E
验证: node tests/e2e.mjs 30/30 PASS(含软导航后明暗切换回归项)
Spec: 2026-10-25_fix-site-polish
Co-authored-by: GLM-5.3
|
2026-10-25 10:46:03 +08:00 |
|
 wait4xandGLM-5.3
|
fb97d76ddb
|
feat(launch): 命令面板+预发布验收+上线脚本(T1/T4/T5)
- T1 (op-gitea 车道):CommandPalette 三层(动作 theme/lang/rss+导航
zh/en+Pagefind 搜索),Ctrl K 与 / 入口,document 级委托修 ClientRouter
换页绑定失效;连带修复动态结果节点的 scoped CSS 失效潜伏 bug
- T4:preflight.sh 17 项全绿(产物/hreflang/双轨/微信 UA 200/
responsive 11/halo 无恙/回滚前置);headless 渲染经 c4ai 复核
(en 书评页全文+标注+ICP 实测在案)
- T5:launch.sh/rollback.sh 双向 dry-run 绿 + 上线检查单(linger/
ESA 刷新/验证 URL/回滚路径)
验证: build 21 页 exit 0;command-palette+cmd-item zh/en 断言;
bash scripts/preflight.sh ALL OK;launch/rollback dry-run exit 0
Spec: 2026-10-25_add-blog-launch
Co-authored-by: GLM-5.3
|
2026-10-25 09:52:50 +08:00 |
|
 wait4xandGLM-5.3
|
938558ad4c
|
feat(launch): 热力图与 webhook 发布闭环(T2/T3)
- T2 (op-artalk 车道):gitea heatmap 构建期拉取+fallback+空态三保险,
53×7 灰阶格复用 tokens(亮暗自动),日界锚定 Asia/Shanghai,零 JS,
zh/en 首页挂载;fallback 经死端点实测不破构建
- T3:webhook_receiver.py(HMAC 强制+main-only+构建锁)以 systemd
--user 常驻 13021;gitea hook 注册(events=push, branch=main)
- 三个深坑:gitea 容器回宿主须走桥网关 IP 而非 127.0.0.1;gitea 28
egress 拦私网须 ALLOWED_HOST_LIST(ALLOWLIST 是废弃名);systemd
用户服务缺用户 PATH 致 build 静默失败(stamp 不更新即症状)
验证: 测试投递 202→构建→staging 戳更新(09:48:37 实测);
dist 热力图 376 格真数据(9 次贡献)zh/en 双页
Spec: 2026-10-25_add-blog-launch
Co-authored-by: GLM-5.3
|
2026-10-25 09:49:19 +08:00 |
|
 wait4xandGLM-5.3
|
4aa79fca06
|
feat(i18n): UI 字典串接与三页薄化——/en/ 全站落成
- op-gitea 车道:ui.ts 扩 26 键(占位 {n}/{title}/{exif} 约定),五组件
locale prop 串接,zh 零回归(48 键/18 页实测)
- orchestrator 收尾:gallery/moments/about 三页 body 提取为
components/pages/*Page(zh/en 薄页双路由),/en/ 全家福 21 页
- 提取工程三坑入库:HTML 注释不可进 frontmatter 模块区;搬移脚本会吃
开栏 ---;单级页面搬二级目录后 import 全线差一层
验证: astro build 21 页 exit 0;/en/ 七类路由产物断言过;en 页
ICP 备案保留;zh 侧文案抽查不变
Spec: 2026-10-25_add-blog-i18n
Co-authored-by: GLM-5.3
|
2026-10-25 09:26:14 +08:00 |
|
 wait4xandGLM-5.3
|
c74815b516
|
feat(i18n): /en/ 双语骨架——路由/切换/hreflang/回退/AI 标注
- astro i18n(zh 默认无前缀,en /en/)+ locale.ts 路径工具
- Header 语言切换(同路径跨前缀跳转,预构建毫秒级)
- /en/index + /en/archives/{slug}(postsEn 优先,缺译回退 zh 正文
+ AiTranslatedBadge 虚线标注 TMT);en RSS(标题回退同策略)
- BaseLayout hreflang 双向 + x-default 指向 zh 源
- posts-en 集合(postsSchema.extend locked 润色锁)
- 坑:ts 端点文件误带 --- 开头会以 undefined:2:7 报 Unexpected token
验证: astro build 18 页 exit 0;/en/ 六文章路由+首页+rss 产物断言过;
zh 侧零回归(11 页不变);hreflang 抽查 dist/index.html
Spec: 2026-10-25_add-blog-i18n
Co-authored-by: GLM-5.3
|
2026-10-25 09:20:16 +08:00 |
|
 wait4xandGLM-5.3
|
44bfb23efb
|
feat(gallery): 原图查看与下载——仓外 originals store 双轨制
- git 仓只进压缩版(构建用);原图落 ~/docker_apps/blog/photos-originals/
(迁移器/ingest 双入口写入,幂等),build.sh 独立 rsync 到
staging/photos-originals/(同一静态根,零 nginx 改动)
- lightbox 增「原图」(新标签全尺寸)+「下载」(download 属性带文件名)
- 原图持久保障:store + Phase 0 备份 tar 双留档;存量 21 张已回填(196M)
验证: astro build 11 页 exit 0;dist/gallery 含 lb-original×2 与
photos-originals 引用;staging/photos-originals 21 张实测
Spec: none (用户功能补req:原图查看/下载,跨 Phase 独立小特性)
Co-authored-by: GLM-5.3
|
2026-10-25 09:12:26 +08:00 |
|
 wait4xandGLM-5.3
|
4694428614
|
feat(search): 站内搜索/RSS/sitemap/Artalk 懒挂载
- astro-pagefind:构建期索引;SearchDialog 首开懒加载 + 200ms 防抖,
入口=Header 钮 + 键盘 /(P0 键位集补全)
- @astrojs/rss:posts 全量(draft 排除),双语分流留 Phase 3
- @astrojs/sitemap:sitemap-index 产出
- ArtalkComments:IntersectionObserver 进入视口才拉 Artalk.js,
pageKey=/archives/{slug}/(中英共键,评论不分裂)
验证: pnpm astro build exit 0;dist/pagefind 目录 + rss.xml +
sitemap-index.xml 三件断言过
Spec: 2026-10-24_add-blog-skeleton
Co-authored-by: GLM-5.3
|
2026-10-25 00:13:29 +08:00 |
|
 wait4xandGLM-5.3
|
945a9ee610
|
feat(pages): 五页型落地——首页/文章双模板/图库 masonry/瞬间/关于
- 首页:名片+身份陈述空槽+按年分组分轨列表(情绪色/mono标签)+影像格+项目墙
- 文章 /archives/{slug}(与 Halo 旧 URL 1:1):reading→衬线纸墨 / tech→
TOC 侧栏(≥1120 sticky)+2px 进度条+Artalk 容器占位
- 图库:grid masonry(构建期 aspect-ratio 零 JS)+原生 dialog lightbox
(←→/Esc+EXIF 底栏)+分组筛选
- 瞬间时间线 / 关于(三轨版图+构建说明)
- sharp ^0.35.5 入依赖(Astro 7 不内置,astro:assets 缩略图管线前提)
- 裸 blockquote 默认吃 A 墨线样式(markdown 原生输出无类名的缝隙)
- 车道 30min 超时,产物完整,主会话补 sharp+断言脚本递归修正后收编
验证: pnpm astro build exit 0(7 页);五路由产物断言过;
scripts/check-responsive.sh 11/11 ok(1120/820/760/560 全档)
Spec: 2026-10-24_add-blog-skeleton
Co-authored-by: GLM-5.3
|
2026-10-25 00:11:34 +08:00 |
|
 wait4xandGLM-5.3
|
80ff67e8fa
|
feat(content): 三集合 schema 与 EXIF 构建期补全(T4 车道收编)
- src/content.config.ts(Astro 7 唯一合法路径,旧 config.ts 会抛
LegacyContentConfigError——车道实测发现,经批复的边界修正)
- posts(category→track 派生单源)/moments(text-image 互斥 refine)/
photos(json sidecar + jpg,exif 构建期 exifr 补全、frontmatter 可覆盖)
- 样例:书评+技术文各 1、瞬间 3、照片 3(横竖方三比例,EXIF 三路径覆盖)
- 附带 scripts/check-responsive.sh(T9 预置,随 T6 产物生效)
- 车道 30min 超时于过度验证循环,产物完好,主会话收编续跑
验证: pnpm astro build exit 0(1.63s,含三集合加载)
Spec: 2026-10-24_add-blog-skeleton
Co-authored-by: GLM-5.3
|
2026-10-24 23:36:59 +08:00 |
|
 wait4xandGLM-5.3
|
725bfde21f
|
feat(geek): 极客层 P0 四件套——键盘/构建透明/页面转场/项目墙
- Keyboard:? 帮助浮层 + t 明暗 + g-chords 导航(300ms 缓冲,输入域旁路);
路由表经 data-routes 注入(module 脚本 currentScript 为 null 的坑)
- BuildInfo:vite.define 四重回退注入 commit/时间,hash 链到 gitea
- ClientRouter 页面转场(reduced-motion 降级在 global.css 总闸)
- ProjectWall:构建时双源拉取(gitea+github)置顶排序+缓存兜底,零运行时 JS
- Header 补主题可视切换钮:键盘 t 的触屏等价物(同 key 同逻辑)
验证: pnpm astro build exit 0;dist 标记 built from×2/kbd-help×4/
view-transition×2; astro check 未跑(无类型错误构建期可证伪面有限)
Spec: 2026-10-24_add-blog-skeleton
Co-authored-by: GLM-5.3
|
2026-10-24 23:13:23 +08:00 |
|
 wait4xandGLM-5.3
|
b50eddf2bb
|
feat(layout): 基础布局/导航/页脚/明暗不闪烁
- BaseLayout:字体三轨统持、viewport-fit=cover、theme-color 双套、skip-link
- Header:≤4 项导航纪律 + sticky 毛玻璃 + aria-current;搜索 icon 占位待 T8
- Footer:ICP 备案链接(法定保留)+ built-from 具名槽位待 T7
- ThemeScript:head 内联先于首帧,手选 > 系统偏好,防白闪
验证: pnpm astro build exit 0;dist/index.html 含 ICP 文案与跳到正文链
Spec: 2026-10-24_add-blog-skeleton
Co-authored-by: GLM-5.3
|
2026-10-24 23:09:45 +08:00 |
|
 wait4xandGLM-5.3
|
ee53279822
|
feat(fonts): 字体三轨预分片自托管接入
- lxgw-wenkai-screen-webfont + @fontsource/noto-sans-sc(400/500/700)
+ @fontsource/jetbrains-mono(400/700),均 OFL
- unicode-range 按需加载 + font-display swap;家族名与 tokens 栈首一致
- 教训:包 css 不能经 .css 文件 ESM import,须组件 frontmatter 持有
验证: pnpm astro build exit 0;dist woff2 分片 399 个(>50 门槛)
Spec: 2026-10-24_add-blog-skeleton
Co-authored-by: GLM-5.3
|
2026-10-24 23:08:36 +08:00 |
|
 wait4xandGLM-5.3
|
4cb1c85cc3
|
feat(design): 设计 tokens 与全局样式——丙路线「灰阶骨架×分轨正文」
- tokens.css:四档灰阶/单强调蓝/蓝黑暗色/纸墨面板/情绪色五档/
字体三轨栈/排版三角(书评20-1.75-720 技术19-1.7)/唯一缓动曲线
- global.css:轻量reset/双轨正文(.prose-reading/.prose-tech)/
引文A墨线+D金句62px水印/终端风代码块/::selection半透明/
560px降档18px/动效总闸prefers-reduced-motion
验证: pnpm astro build exit 0;参数与调研报告 §3 一一对应
Spec: 2026-10-24_add-blog-skeleton
Co-authored-by: GLM-5.3
|
2026-10-24 23:07:11 +08:00 |
|
 wait4xandGLM-5.3
|
eeb9bde121
|
feat(skeleton): Astro 7.3.8 项目初始化(pnpm+TS strict)
- astro 锁 7.3.8:7.4 起 engines 要求 node>=22.23.4,宿主 22.22.3 差一档
- minimal 骨架:单页占位 + site=https://wait4x.online,集成留 T8 按任务接入
验证: pnpm astro build exit 0(1 page built)
Spec: 2026-10-24_add-blog-skeleton
Co-authored-by: GLM-5.3
|
2026-10-24 23:07:11 +08:00 |
|