wait4x
|
1737bf027c
|
Merge remote-tracking branch 'origin/main'
|
2026-11-05 10:03:44 +08:00 |
|
wait4x
|
d4ddc08fbd
|
Merge branch 'spec/2026-11-05_blog-5l-admin-preview-moments'
Phase 5l 交付:后台编辑体验三件套——①预览窗格显色显字体
(registerPreviewStyle 官方口子,排版类 CSS 从清单运行时生成,
自托管艺术字体挂切片 CSS 按需取片,pattern 放宽到多类)
②编辑字段排版速查提醒(正文/瞬间/整页正文三处 hint + 管理台文档)
③瞬间置顶/隐藏真字段(对齐 posts 契约:置顶优先→日期倒序、
隐藏=列表移除+页面保留,后台开关与灰阶 pin 徽标)。
Spec: 2026-11-05_blog-5l-admin-preview-moments
|
2026-11-05 10:03:34 +08:00 |
|
 wait4xandGLM-5.3
|
b99e6e744b
|
chore(spec): 归档 blog-5l——三任务收敛(预览一致性/排版提醒/瞬间置顶隐藏)
Spec: 2026-11-05_blog-5l-admin-preview-moments
Co-authored-by: GLM-5.3
|
2026-11-05 10:03:34 +08:00 |
|
wait4x
|
a3d6998de5
|
Create 文章 “佩德罗·巴拉莫” +1
|
2026-11-05 01:47:53 +00:00 |
|
wait4x
|
ac1eab3cf1
|
Update 文章 “deng-dai-ge-duo” +1
|
2026-11-05 01:43:14 +00:00 |
|
wait4x
|
0d40b00f5a
|
Update 页面文案 “about”
|
2026-11-05 01:23:33 +00:00 |
|
wait4x
|
326b9bbd79
|
Update 页面文案 “about”
|
2026-11-05 01:21:55 +00:00 |
|
wait4x
|
59895aca2b
|
Update 页面文案 “home” +1
|
2026-11-05 01:17:03 +00:00 |
|
 wait4xandGLM-5.3
|
c5889f960b
|
style(about): 方案 A 复核润色(名片留白 + 链接 hover 箭头)
验证: pnpm astro build exit 0;dist/about/index.html 含 .about-id 包裹
Spec: none (已上线方案的复核润色)
Co-authored-by: GLM-5.3
|
2026-11-04 23:49:17 +08:00 |
|
wait4x
|
a3ddbbefdd
|
Merge remote-tracking branch 'origin/main'
|
2026-11-04 23:40:48 +08:00 |
|
 wait4xandGLM-5.3
|
e65d44df29
|
style(about): 方案 A 视觉复核两条微润色
视觉复核(glm-5.3-flash:max)对已上线方案 A 的两条小意见:
- 名片与正文衔接略紧 → .about-id 加一档 margin
- 找到我列表过素 → 链接 hover 显 ↗ 箭头 + 转 accent(保留素的定位,但不至于没有 UI)
验证: pnpm astro build exit 0
Spec: none (已上线方案的复核润色)
Co-authored-by: GLM-5.3
|
2026-11-04 23:40:38 +08:00 |
|
wait4x
|
609ce1eb2e
|
Merge remote-tracking branch 'origin/main'
|
2026-11-04 23:37:14 +08:00 |
|
wait4x
|
f6da3b3c32
|
Merge remote-tracking branch 'origin/main'
|
2026-11-04 23:36:36 +08:00 |
|
wait4x
|
160af791b5
|
Merge remote-tracking branch 'origin/main'
|
2026-11-04 23:32:38 +08:00 |
|
wait4x
|
0ef0fcd394
|
Merge branch 'spec/2026-11-04_blog-5k-about-designs'
Phase 5k 交付:关于页形态选型闭环——五案预览(A 白纸直编 / B 名片双栏 /
C 杂志分节 / D 时间线 / E 卡片流)→ 用户选定 A → 落地「白纸直编」单字段
(四级回落 doc → blocks → intro → 内置默认,blocks 降为 legacy 通道)+
后台 markdown 字段置顶 + 预览路由退役。
Spec: 2026-11-04_blog-5k-about-designs
# Conflicts:
# scripts/build-perf/content-lint.mjs
|
2026-11-04 23:32:05 +08:00 |
|
 wait4xandGLM-5.3
|
b72ecccc80
|
chore(spec): 归档 blog-5k——两任务收敛(关于页定稿方案 A)
Spec: 2026-11-04_blog-5k-about-designs
Co-authored-by: GLM-5.3
|
2026-11-04 23:30:15 +08:00 |
|
wait4x
|
9a3a196eea
|
Update 文章 “writing-template”
|
2026-11-04 15:25:43 +00:00 |
|
 wait4xandGLM-5.3
|
4153c6d33f
|
feat(about): 用户选定方案 A——关于页改「白纸直编」单字段(5k T1/T2 落地)
用户在 /about-preview/ 五案中选 A。落地:
- siteAbout schema 增 `doc`(双语整页 markdown);about.yaml 现有内容已合成
doc(身份语 + 关于我 + 找到我 + 本站如何构建,双语齐备)
- AboutPage 四级回落:**doc 白纸直编 → blocks 块式 → intro → 内置默认**
(doc 非空时整页只渲染它,IdCard 仍在顶部;blocks 降为 legacy 通道)
- 后台「关于页」最顶部即「整页正文」markdown 字段(这就是方案 A 的编辑模型),
块式结构标注 legacy
- 删除两个已完成的预览路由(/about-preview/、/heatmap-preview/)与 HeatGrid
预览组件、content-lint 白名单整体移除
- docs/管理台 新增「关于页正文」一节(四级回落说明)
验证: 构建 50 页 exit 0;content-lint 51 页 0/0/0;config-check 234 字段/74 hint;
产物断言 doc 渲染(汇文+红身份语 / 找到我链接 / mono 小标题);
E2E 56/56(含书架开合翻转与 5j 数据板口径更新)
Spec: 2026-11-04_blog-5k-about-designs (T1/T2)
Co-authored-by: GLM-5.3
|
2026-11-04 23:22:41 +08:00 |
|
 wait4xandGLM-5.3
|
cb44d0b2d2
|
feat(about): 关于页五方案预览上线
用户要求 3-5 个方案供审阅:A 白纸单栏 / B 名片双栏 / C 杂志分节 / D 时间线 / E 卡片流,
共用 about.yaml 真实数据。
验证: 构建 exit 0;五案渲染、零溢出
Spec: none (预览页随选型迭代)
Co-authored-by: GLM-5.3
|
2026-11-04 23:10:56 +08:00 |
|
 wait4xandGLM-5.3
|
b41b4ba8a5
|
feat(about): 关于页五方案预览上线(5k T1)
用户要求关于页「深入探索和设计提出 3-5 个方案,并设计出页面供我审阅」。五案共用
about.yaml 真实数据(选哪个都不用迁移内容):
A 白纸单栏:后台就是一个 markdown 编辑器,身份卡 + 单栏全文连排——编辑自由度最大
B 名片双栏:左侧 sticky 身份名片,右侧正文分节——个人站经典形态
C 杂志分节:大字引言 + 编号分节(01 关于我 / 02 兴趣版图 / 03 找到我 / 04 本站构建)
+ 右侧粘性目录跟随滚动
D 时间线:把"我是谁"讲成轨迹(起点气象 → 第二主线代码 → 作品 → 信条),沿线节点
E 卡片流:身份卡打头,正文/兴趣/链接/构建各占一张卡片,两列错落
content-lint 白名单加一次性预览路由(无 en 对应页)。
验证: 构建 53 页 exit 0;content-lint 53 页 0/0/0;
Playwright 实测五案均渲染(3 枚图标 svg / IdCard / 9 条找得到我链接)、
1280 与 390 零横向溢出
Spec: 2026-11-04_blog-5k-about-designs (T1)
Co-authored-by: GLM-5.3
|
2026-11-04 23:10:55 +08:00 |
|
 wait4xandGLM-5.3
|
129b23cd2b
|
fix(heatmap): 修蛇头坐标轴反了跑出边界;P1 智能寻食蛇落进正式开源页
用户选定 P1,同时报障「贪吃蛇跑到了窗口之外」。
根因:网格是**列优先**索引(idx → 列=floor(idx/7)、行=idx%7),P1 引擎的 posOf
把 x/y 写反——蛇头 y 会到 676px(网格仅 91px 高),一路走出下边界。
预览页坐标已修正;正式热力图按 P1 落地时直接用正确坐标系。
P1 落进正式开源页(Heatmap.astro):
- 头(accent 圆点)+ 8 节渐隐拖尾,沿「最近邻路径」只在有贡献的格子间滑行,
空格不染色(371 格仅 51 天活跃,全网扫描会让蛇 86% 行程空转)
- 吃到的格子点亮 accent;月柱随蛇头所在月份递增点亮
- 路径首尾相接实现无缝循环;离开视口即停;reduced-motion 下头/拖尾隐藏、
柱子以终态呈现;无 JS 兜底同款(noscript 样式)
- 清理死分支:P1 路径只访问活跃格子,walked 分支永不触发
验证: 构建 51 页 exit 0;E2E 56/56;
Playwright 实测蛇头 transform 始终在网格包围盒内(x≤676、y≤83 含居中偏移)、
eaten 递增至 51、月柱 13/13 点亮、reduced-motion 头隐藏柱立起、无 JS 柱立起
Spec: none (P1 为用户已选定方案的落地 + 坐标 bug 修复)
Co-authored-by: GLM-5.3
|
2026-11-04 23:04:14 +08:00 |
|
 wait4xandGLM-5.3
|
6e343c80dc
|
test(e2e): 书架改「开合翻转」口径,数据板断言更新为 5j 口径
- 书架(方案 C):置顶书默认展开是设计行为,点它=收起。原断言误点已展开的
置顶行断言「变开」→ 必然失败。改为断言开合状态恰好翻转一次
- 数据板断言:5j T2 有意退役 streak/贡献蛇 SVG(信息并入热力图区),原
「数据板渲染」断言过时;改为断言连续贡献统计条 + 更新时间标注 + 第三方
资产零命中(含退役的 /github-assets/)
验证: E2E_BASE=http://127.0.0.1:18925 node tests/e2e.mjs → 56/56 PASS
Spec: none (测试口径随 5j 定稿同步)
Co-authored-by: GLM-5.3
|
2026-11-04 23:03:45 +08:00 |
|
wait4x
|
f73a1b3e63
|
Merge branch 'spec/2026-11-03_blog-5j-content-refine'
Phase 5j 交付:开源页叙述合一(story 单字段 markdown 内联链接)+ 贡献数据去重与时效
(连续贡献改热力图同源本地计算并标注更新时间,贡献蛇与 streak.svg 退役)+
瞬间/书架标题下话语后台可编辑(pages.yaml 单例,字号/颜色/字体三档夹取)+
隐藏开关假开关修复(hidden 真字段 + post-visibility 契约,RSS/sitemap 一并过滤)+
热力图蛇路径优化三案预览(P1 智能寻食/P2 平滑蛇体/P3 分月清扫)。
关于页形态探索拆分为独立包 5k。
Spec: 2026-11-03_blog-5j-content-refine
|
2026-11-04 22:29:49 +08:00 |
|
 wait4xandGLM-5.3
|
19b765e5b1
|
chore(spec): 归档 blog-5j——四任务收敛(关于页探索拆出 5k)
Spec: 2026-11-03_blog-5j-content-refine
Co-authored-by: GLM-5.3
|
2026-11-04 22:29:49 +08:00 |
|
 wait4xandGLM-5.3
|
6b501fa688
|
chore(spec): 5j 重划——关于页探索拆出为 5k,勾选收敛
Spec: 2026-11-03_blog-5j-content-refine
Co-authored-by: GLM-5.3
|
2026-11-04 22:24:03 +08:00 |
|
 wait4xandGLM-5.3
|
f581f5bc4f
|
docs(content): story/页面说明文案/隐藏语义同步指南(5j T5)
验证: pnpm astro build exit 0
Spec: 2026-11-03_blog-5j-content-refine (T5)
Co-authored-by: GLM-5.3
|
2026-11-04 22:16:46 +08:00 |
|
 wait4xandGLM-5.3
|
a2b5755680
|
docs(content): story 字段/页面说明文案/隐藏语义同步到指南(5j T5)
- 管理台:开源页「叙述已合一」(推荐改 story 单字段,旧字段标 legacy)、
新增「页面说明文案」一节(瞬间/书架标题下话语 + 三档样式 + 兜底行为)、
置顶语义补「隐藏优先」与「多本置顶在书架的默认展开」
- 写作指南:新增「隐藏文章」一节(hidden: true / tags 两种写法、页面仍生成、
与草稿的区别、隐藏与置顶同开以隐藏为准)
验证: pnpm astro build exit 0
Spec: 2026-11-03_blog-5j-content-refine (T5)
Co-authored-by: GLM-5.3
|
2026-11-04 22:16:22 +08:00 |
|
wait4x
|
7401b512e6
|
Merge branch 'spec/2026-11-03_blog-5j-content-refine'
Phase 5j 进行中合并(T1/T2/T3 已交付):开源页叙述合一(story 单字段 markdown)+
贡献数据去重与时效(连续贡献改热力图同源本地计算并标注更新时间,贡献蛇与
streak.svg 退役)+ 瞬间/书架标题下话语改为后台可编辑(pages.yaml 单例,字号/
颜色/字体三档夹取)+ **隐藏开关假开关修复**(hiddenTag 只写没人读的字段导致
隐藏+置顶仍显示并排第一;新增 hidden 真字段与可见性契约 post-visibility,
RSS/sitemap 一并过滤)+ 热力图蛇路径优化三案预览(P1 智能寻食/P2 平滑蛇体/
P3 分月清扫,均带月柱联动)。
Spec: 2026-11-03_blog-5j-content-refine
|
2026-11-04 22:01:06 +08:00 |
|
wait4x
|
e5f2d0089e
|
Merge remote-tracking branch 'origin/main' into spec/2026-11-03_blog-5j-content-refine
# Conflicts:
# content/site/opensource.yaml
# src/pages/heatmap-preview.astro
|
2026-11-04 22:01:06 +08:00 |
|
 wait4xandGLM-5.3
|
3151d20c66
|
chore(spec): 5j 勾选 T2
Spec: 2026-11-03_blog-5j-content-refine
Co-authored-by: GLM-5.3
|
2026-11-04 22:00:15 +08:00 |
|
 wait4xandGLM-5.3
|
49acb4cbd1
|
fix(posts): 隐藏开关是假开关——修「隐藏+置顶仍显示并排第一」;贡献数据去重
用户实测:「有的文章同时选择了置顶和隐藏,还会显示并置顶」。
根因:后台「隐藏」开关(hiddenTag)是个假开关——它只写 `hiddenTag: true` 这个
没人读的字段,而全站过滤只认 `tags` 里的 `hidden`。于是隐藏从未生效;
叠加置顶后,这篇还在列表最前面。
- 新增 src/lib/post-visibility.ts:可见性契约单一事实源——`!draft && !hidden &&
!tags.includes('hidden')`(两条通道都认,历史写法兼容)
- postsSchema 增真字段 `hidden`;七处消费点(首页双轨/归档 zh/en/书架/RSS zh/en/
文章页导航)统一走 isVisiblePost
- 后台假开关 hiddenTag 换成真开关 hidden,hint 写清语义:不进列表/RSS/sitemap,
页面本身仍生成(链接可分享);与置顶同时打开时以隐藏为准
- sitemap 过滤隐藏文章(astro.config 配置期扫 frontmatter,两种写法都认;
内容目录不可读时宁可不排除也不炸构建)
贡献数据去重(5j T2,回答用户「连续贡献是否实时」):
- 连续贡献不再构建期抓取 streak.svg 快照(不实时、暗色需滤镜、与热力图同源重复),
改为热力图同一份 GraphQL 日历本地计算(src/lib/heatmap.ts streakStats):
当前连续(以最后有贡献日为终点)/ 最长 / 总贡献,界面上标注「数据更新于 X」
- 贡献蛇块与自托管 snake/streak SVG 删除,fetch 脚本 ASSETS 清空,
build.sh 守卫改为退役说明;开源页数据板整块并入热力图区
验证: 构建 51 页 exit 0;content-lint 52 页 0/0/0;E2E 56/56;
临时两篇「置顶+隐藏」(新字段/旧 tags 各一)实测——首页/归档/书架/
双语首页/RSS 双语/sitemap 全部零命中,页面本身仍生成;
清理后归档首条恢复 writing-template(普通置顶不受影响);
开源页 snake/streak 资产零残留、连续统计条与更新时间标注就位
Spec: 2026-11-03_blog-5j-content-refine (T2 + 隐藏 bug 修复)
Co-authored-by: GLM-5.3
|
2026-11-04 22:00:15 +08:00 |
|
 wait4xandGLM-5.3
|
b3c3bcf49e
|
feat(heatmap): 蛇家族四变体预览 + 后台补齐 story/页面说明文案
验证: 构建 exit 0;实测 F1 循环(loop 1→2、每轮吃到 51 天)、F2 身长 3→26、
F3 双头、FJ 柱子随爬行点亮、J 柱联动
Spec: none (预览页随选型迭代)
Co-authored-by: GLM-5.3
|
2026-11-04 21:27:13 +08:00 |
|
 wait4xandGLM-5.3
|
34a78dacb9
|
feat(heatmap): 蛇家族四变体 + 补齐后台表单(5j 预览 v3)
用户选定 F+J 方向,要求蛇能**循环**(学 GitHub README 蛇的节奏),并再看几个新变体。
四个蛇变体:
- F1 循环贪吃蛇:蛇形爬一年,吃到有贡献的日子点亮;到端点停一拍、清空、重新开始,
无限循环,身体保持 6 节(README 蛇手感)
- F2 生长蛇:每吃到一天长一节(3 → 26 上限),吃完循环重置——"积累"的隐喻最强
- F3 双蛇对开:两条蛇从最早/最新一头相向而吃,在年中交汇
- FJ 蛇 + 月柱联动:蛇爬进某个月,对应柱子同步升起并高亮;爬到年末十二根全立,
然后回到起点、柱子清零、再来一轮(用户点名要的组合)
- J 单独保留月度柱状图作参考
实现要点:共用一套蛇引擎(蛇形路径 = 按列推进、奇数列反向;轨迹队列控制身长;
到端点判定"本轮结束"→ 900ms 后 reset 并重入);IntersectionObserver 离开视口即停;
「减少动态效果」下直接呈终态(点亮所有有贡献的格子 + 柱子立起)。
**后台补齐(回答用户"改动同步到后台了吗"——此前确实漏了两处)**:
- 开源页新增「叙述(推荐改这里)」story 字段(双语 markdown,链接内联),
旧 blurb 标注 legacy
- 新增「瞬间 / 书架 标题下的说明」文件条目:文字(markdown)+ 字号(11–16)
+ 颜色(ink 灰阶四级)+ 字体(12 族下拉),两页独立
验证: 构建 52 页 exit 0;config-check 231 字段 / 73 hint 全过;
Playwright 实测——F1 身长 6 且 loop 计数 1→2、第 1 轮吃到 51 天;
F2 身长 3→26、吃掉 38 天;F3 同时 2 个蛇头;FJ 柱子随爬行递增点亮(3→5→7→10);
J 柱子升起并悬停联动
Spec: 2026-11-03_blog-5j-content-refine (预览 v3)
Co-authored-by: GLM-5.3
|
2026-11-04 21:27:12 +08:00 |
|
 wait4xandGLM-5.3
|
d6dfe39db3
|
feat(heatmap): 热力图六案 v2 预览上线(含贪吃蛇)
按用户反馈重做:F 贪吃蛇 / G 心跳呼吸 / H 雨滴涟漪 / I 3D 地形 / J 周冠军柱 / K 显微镜。
验证: 构建 exit 0;Playwright 逐案实测动效均生效(蛇 371 格爬完吃到 51 天)
Spec: none (预览页随选型迭代)
Co-authored-by: GLM-5.3
|
2026-11-04 20:47:26 +08:00 |
|
 wait4xandGLM-5.3
|
d9721cdbd8
|
feat(heatmap): 热力图方案 v2——六案重做,含「贪吃蛇」(5j 预览迭代)
用户看过 v1 五案后反馈「不是很满意」,并要求「类似贪吃蛇般的方案」,故重做六案:
F 贪吃蛇 / G 心跳呼吸 / H 雨滴涟漪 / I 3D 地形 / J 周冠军柱 / K 显微镜。
**贪吃蛇(F)的关键设计判断**:真实数据 371 格里只有 51 天有贡献(总 306 次),
若照 GitHub 的做法"只吃有贡献的格子",蛇有 86% 的行程毫无反馈、看起来像卡住。
改为「爬过即留淡色轨迹 + 有贡献处强调色加重」,并把节奏 55ms→30ms(371 格约 11 秒
爬完一年),末尾给出「走过 371 格,吃到 51 天」的收束统计。
其余五案:
- G 心跳呼吸:按当日贡献量给每格不同的呼吸时长(3.4s→1.2s),纯 CSS 合成层动画
- H 雨滴涟漪:以「最后一次贡献」为圆心按距离错峰扩散,扫过闪一下;可重播
- I 3D 地形:贡献量当海拔(translateZ 0–14px),指针倾斜整块网格
- J 周冠军柱:月度总计柱状图,进视口逐根升起,悬停柱子联动高亮该月所有格子
- K 显微镜:指针处浮起圆镜,放大 5×5 邻域(用数据档位绘制)+ 日期与次数
六案共同约束:accent 只做高亮不参与数据编码(数据仍由 ink 四档承载)、
reduced-motion 全部静态、离开视口即停(IntersectionObserver)、零第三方依赖。
验证: 构建 52 页 exit 0;content-lint 52 页 0/0/0;Playwright 逐案实测——
F 蛇身逐格推进至 371/371、吃到 51 天、读数实时更新;
G 52 格动画 hmBreath 时长生效(2.6/3.35/3.06s…);
H wrap.play 且 animationName=hmWave;
I .hg-raise 有 translateZ 且容器 matrix3d 倾斜;
J 柱子 grow 后高 14px、13 个月、悬停联动 28 格;
K 圆镜 25 个迷你格 + 日期读数 + 焦点格 1;
390 零横向溢出;reduced-motion 下 breath none / 蛇静态全亮 / 地形无倾斜
Spec: 2026-11-03_blog-5j-content-refine (热力图预览 v2)
Co-authored-by: GLM-5.3
|
2026-11-04 20:47:25 +08:00 |
|
 wait4xandGLM-5.3
|
1a486a20d2
|
chore(spec): 5j 勾选 T1/T3
Spec: 2026-11-03_blog-5j-content-refine
Co-authored-by: GLM-5.3
|
2026-11-04 20:14:59 +08:00 |
|
 wait4xandGLM-5.3
|
58baad5a7b
|
feat(content): 瞬间/书架标题下的话语改为后台可编辑(5j T3)
用户原话:「瞬间、书架大标题下的话语我从哪里去改?包括其字号颜色还有字体」——
此前这两行是硬编码(瞬间来自 i18n 字典、书架是组件里的字面量),后台完全改不了。
- 新增 sitePages 单例(content/site/pages.yaml)+ pageNote() 访问器:note 走富文本
行内管线,空则回落内置默认(原硬编码两句逐字搬入 PAGE_NOTE_DEFAULTS)
- 样式只开放三档并全部夹取:size 11–16px、color 仅 ink-1..ink-4、font 仅排版类白名单
—— 后台可填任意值,不能让它破版或染色
- **关键坑**:字体类不能只挂 class——global.css 的 .font-kai/.font-sans 全挂在富文本
容器作用域(.prose-*/.rich/.mom-text/.prose-body),裸 .page-note.font-kai 拿不到
规则(实测第一次无效,仍是 Noto Sans)。改为复用 fontVarFor() 产出 inline
font-family,class 仅作语义
- 书架与瞬间各自独立配置;默认值取「改造前外观」(均 font-sans)
验证: 构建 exit 0;content-lint 52 页 0/0/0;E2E 56/56;
实测(只改 books 样式)书架 computed = 16px / rgb(51,52,58) / Ma Shan Zheng,
瞬间保持 13px / ink-4 / Noto Sans(两页互不影响);
op-gitea 侧另测:仅改文本、整段删 style(与基线逐字段一致)、非法值
(size:40/color:red/font 乱写)全部安全回落
Spec: 2026-11-03_blog-5j-content-refine (T3)
Co-authored-by: GLM-5.3
|
2026-11-04 20:14:59 +08:00 |
|
 wait4xandGLM-5.3
|
6b2e4d8666
|
feat(opensource): 热力图五方案动效预览上线
用户要求「热力图可以有更多的动效,而不是静态的一张图」,先上线五案供选型:
A 入场波纹 / B 光标光晕 / C 年度回放 / D 连续电流 / E 悬停周详情。
均守灰阶红线、reduced-motion 静态化、零第三方依赖。
验证: 构建 exit 0;content-lint 52 页 0/0/0;Playwright 逐案实测动效均生效
(A hmRise 0.42s、B 光晕读数、C 第 10 周回放、D 12 格 hmFlow、E 整列 lift)
Spec: none (预览页需先上线供用户选择)
Co-authored-by: GLM-5.3
|
2026-11-04 20:09:54 +08:00 |
|
 wait4xandGLM-5.3
|
7e0167a8bb
|
feat(opensource): 热力图五方案预览 + 开源页叙述合一(5j T1 + 预设)
用户两项新需求:
①「开源页的叙述为什么要区分链接前和链接后?完全可以用 markdown 富文本统一替代」
②「热力图可以有更多的动效,而不是静态的一张图,探索相关方案供我审阅」
T1 叙述合一:
- opensource.yaml 新增 story(双语 markdown,链接内联),blurb/blurb_after 保留为
legacy(story 为空时才用)→ 旧 yaml 零回归
- site-content 访问器取 story,GithubProfile 走 renderRich 行内模式;markdown 生成的
裸 <a> 补 .pf-bio :global(a) 样式,与 .pf-link 观感一致
- 实测产物:pf-bio 内联 <a> 渲染成功、pf-link 拼接痕迹 0 处
热力图五方案预览(/heatmap-preview/,供用户选型):
- 新增 geek/HeatGrid.astro:可复用网格渲染件(371 格带 --c/--r 供错峰延迟),
沿用线上同款 ink 灰阶(accent 只做高亮,不参与数据编码)
- A 入场波纹(视口内一次性斜向漫过)、B 光标光晕(radial-gradient 跟随 + 日期读数)、
C 年度回放(滑块 scrub + 累计计数 + 自动播放)、D 连续电流(最近连续段流光 +
连续天数大数)、E 悬停周详情(整列抬起 + 周合计/最好一天面板)
- 五案均守灰阶红线、均在 prefers-reduced-motion 下静态化、零第三方依赖、无常驻 rAF
- **两处真坑**:①网格是子组件渲染,页面级 scoped 样式够不到其内部元素 → 与格内元素
相关的选择器必须 :global()(否则 A 的动画与 E 的抬列静默不生效)②「当前连续」按
今天起算会得 0(今天尚未贡献)→ 改为以最后一个有贡献的日子为终点往回数,并标注
「截至 <日期>」
另修 E2E 过时断言:书架改版为抽书阅读后,原「年份折叠组」断言必然失败,
改为「抽书行渲染 + 点击可抽开」(56/56 PASS)
验证: 构建 51 页 exit 0;content-lint 52 页 0/0/0;E2E 56/56;
Playwright 逐案实测:A 动画 hmRise 0.42s 且播完 opacity=1、B 光晕 opacity=1
并显示「日期 · 次数」、C 拖到第 10 周读数与淡出正确、D 12 格流光 hmFlow +
连续 5 天(截至 2026-10-24)、E 整列 lift matrix(…,-2);390 零横向溢出;
reduced-motion 下动画 none、光晕 display:none
Spec: 2026-11-03_blog-5j-content-refine (T1 + 热力图预览)
Co-authored-by: GLM-5.3
|
2026-11-04 20:09:10 +08:00 |
|
wait4x
|
545c91a0ff
|
Update 文章 “writing-template”
|
2026-11-03 06:44:46 +00:00 |
|
wait4x
|
7149541a92
|
Update 文章 “mian-sha”
|
2026-11-03 06:42:54 +00:00 |
|
wait4x
|
a868bf94fd
|
Update 文章 “shu-zui” +1
|
2026-11-03 06:42:01 +00:00 |
|
wait4x
|
a46430b088
|
Update 文章 “ni-tan” +1
|
2026-11-03 06:40:43 +00:00 |
|
wait4x
|
1ce9cd65ea
|
Update 文章 “mian-sha” +1
|
2026-11-03 06:39:33 +00:00 |
|
wait4x
|
6e4d6c2f88
|
Update 页面文案 “opensource”
|
2026-11-03 06:38:05 +00:00 |
|
wait4x
|
6abca9f412
|
Merge branch 'spec/2026-11-02_blog-5i-fonts-polish'
Phase 5i 交付:字体切换失效根治(按内容诉求注入字体 CSS,此前四份字体 CSS 被
关在阅读轨分支里,技术轨与全站页面从不加载)+ 六款自托管 OFL 字族(@fontsource
切片粒度不达标→改原始 TTF 字频序细切,单页增量 27–46KB 全过闸门)+ 评论失败提示
误报的状态机修复 + 瞬间评论区配色同步(Artalk .artalk 类的 CDN 样式平级压制)+
灯箱右上关闭被全高侧栏遮挡修复 + 灯箱 caption 支持字体与颜色 + 取消彩色强调次数
限制 + 开源页项目墙恢复居中 + README 动效自托管与数据板 + 书架定稿方案 C(抽书
阅读、置顶图标化、多本置顶默认展开)。
Spec: 2026-11-02_blog-5i-fonts-polish
|
2026-11-03 12:47:54 +08:00 |
|
wait4x
|
c9fb46f5a9
|
Merge remote-tracking branch 'origin/main' into spec/2026-11-02_blog-5i-fonts-polish
# Conflicts:
# docs/管理台.md
|
2026-11-03 12:47:53 +08:00 |
|
 wait4xandGLM-5.3
|
edc34a8a8c
|
chore(spec): 归档 blog-5i——九任务收敛
Spec: 2026-11-02_blog-5i-fonts-polish
Co-authored-by: GLM-5.3
|
2026-11-03 12:47:13 +08:00 |
|
 wait4xandGLM-5.3
|
83e0b863fc
|
chore(spec): 5i 勾选 T7/T9(九任务全勾)
Spec: 2026-11-02_blog-5i-fonts-polish
Co-authored-by: GLM-5.3
|
2026-11-03 12:35:20 +08:00 |
|
 wait4xandGLM-5.3
|
9df86cb05b
|
feat(fonts): 新增六款自托管字族(体积闸门内)(5i T9)
用户拍板「字族扩展都补」。六款按三类各两款落地,全部单页增量 ≤150KB:
小薇(文学·宋体气质)、新晰黑(文学·现代黑)、得意黑(标题)、庆科黄油(标题·圆润)、
马善政毛笔与柳建毛草(书法),许可证均 OFL。
关键取舍:@fontsource 官方中文切片粒度太粗(每片约 33 字、单片 40KB+),一句话命中
7 片即 308–442KB/页,四款全部超闸门;即便用 subset-fonts.py 按站内用字重裁仍剩
205–346KB(笔画类字族单片就 50KB)。故改为从 google/fonts 取原始 TTF,按**字频序
细切**(约 19 字/片、单片 2–12KB),每族 99–100 片、族总量 0.5–1.2MB,浏览器只拉
命中的片。四个 @fontsource 依赖随之移除,package.json 净零变更。
实测单页增量(一句话场景):xiaowei 44.9KB / huangyou 27.1KB / mashanzheng 45.7KB /
liujianmaocao 30.0KB / smiley 27.1KB / neoxihei 30.0KB——全部 PASS;
六族同页共 105KB。
接线(一处漏就静默失效,踩过两次):
- rehype-class-whitelist 放行新类(不放行则 span 的 class 被整条剥掉,页面有字没脸)
- site-content 的 ALLOWED_PAGE_FONTS 与后台排版下拉同源补齐(三处下拉 + hint)
- font-needs 扩六个 key,保证「内容用到才加载」的按需契约继续成立
- global.css 六组规则含 .mom-text 作用域(5h 补的瞬间作用域不能漏)
- typography-classes.js(后台可视化面板单一事实源)35→42 项
- subset-fonts.py 新增 --split-ttf / --slices / --order-from(hwmc 的 --css 用法未动)
覆盖边界(已在 docs 与后台 hint 写明):切片只含站内用字(约 1900 字),
新写生僻字会回落系统字族,需按 docs 命令重切。
验证: 构建 50 页 exit 0;content-lint 51 页 0/0/0;config-check 211 字段/66 hint;
六类逐项 getComputedStyle 首项 = ZCOOL XiaoWei / ZCOOL QingKe HuangYou /
Ma Shan Zheng / Liu Jian Mao Cao / Smiley Sans / LXGW Neo XiHei(6/6);
六族全部出现在 document.fonts;首页字体请求数保持 17(零回归)
Spec: 2026-11-02_blog-5i-fonts-polish (T9)
Co-authored-by: GLM-5.3
|
2026-11-03 12:35:20 +08:00 |
|