- 管理台:开源页「叙述已合一」(推荐改 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
3.3 KiB
3.3 KiB
Phase 5j:内容表达去重与页面文案可编辑 - 任务拆解
使用规则
- boundary/verify 齐备;verify 只读断言;车道工作树开发禁 git,收编由 orchestrator 统一提交
- 构建一律
export PATH="$HOME/.local/node/bin:$PATH"(Node 26)+pnpm astro build - E2E 口径:
pnpm astro build → cp -a dist /tmp/dist-e2e-5j → gz-server.py 18925 /tmp/dist-e2e-5j(第二参数才是目录)→ E2E_BASE=http://127.0.0.1:18925 node tests/e2e.mjs(基线 55 项)
阶段一:实现
-
T1 开源页叙述合一(story 单字段富文本)
- claim: worker-one
- boundary:
content/site/opensource.yaml(新增story,保留blurb/blurb_after并标注 legacy)、src/lib/site-content.ts(openSourceCopy增story:非空则用,空则回落旧拼接)、src/components/geek/GithubProfile.astro(消费 story 的富文本渲染,链接用 markdown 内联[label](url))、src/content.config.ts(schema 加 story)、public/admin/config.yml由 orchestrator 统一改(先做代码,字段我来加) - verify:
grep -q "story" src/lib/site-content.ts && grep -q "story" src/content.config.ts && E2E_BASE=http://127.0.0.1:18925 node tests/e2e.mjs 2>&1 | grep -qE "汇总: [0-9]+/[0-9]+ PASS"
-
T2 贡献数据去重与时效(删蛇 + 连续贡献本地计算)
- claim: worker-one
- boundary:
src/lib/heatmap.ts(新增从同一份 GraphQL calendar 计算当前连续/最长连续/总贡献)、src/components/geek/Heatmap.astro(展示三个数 + 「数据更新于 <构建时间>」)、src/components/geek/GithubProfile.astro(删除贡献蛇块与 streak 卡引用)、scripts/build-perf/fetch-readme-assets.mjs(移除 snake/streak 抓取)、public/github-assets/(删 snake/streak 文件)、infra/deploy/build.sh(同步守卫) - verify:
! test -f public/github-assets/snake.svg && grep -q "currentStreak\|longestStreak" src/lib/heatmap.ts && python3 -c "import pathlib;p=pathlib.Path('dist/opensource/index.html').read_text();assert 'snake' not in p and 'streak-' not in p"
-
T3 页面文案可编辑(瞬间/书架标题下话语)
- claim: op-gitea
- boundary:
src/components/pages/MomentsPage.astro(改用可配置 note,替换 i18n 硬编码)、src/components/pages/BooksPage.astro(同上,替换字面量L.note)、src/lib/site-content.ts(新增pageNote(page, locale)访问器:文本 + 字号 + 颜色 token + 字体类)、content/site/pages.yaml(新单例,由 orchestrator 建 schema/后台,车道可先写默认值) - verify:
grep -q "pageNote" src/lib/site-content.ts && grep -q "pages.yaml" src/content.config.ts && E2E_BASE=http://127.0.0.1:18925 node tests/e2e.mjs 2>&1 | grep -qE "汇总: [0-9]+/[0-9]+ PASS"
-
T4 关于页形态探索 → 拆分为独立包
2026-11-03_blog-5k-about-designs(2026-11-04 重划:关于页是"整页 markdown 直编 vs 结构化方案"的内容决策,需要用户在预览页里选型,与本包"叙述合一/贡献数据/页面文案"的工程主线不同节奏;独立成包避免阻塞本包上线) -
T5 文档与后台 hint
- claim: orchestrator
- boundary:
docs/管理台.md、docs/写作指南.md、public/admin/config.yml - verify:
grep -q "story" docs/管理台.md && grep -q "pages.yaml\|页面文案" docs/管理台.md