维护记录

完成的工作

  • 同步本地仓库:git fetch --all --prune + git pull --ff-only,从 bb91378 推进到 5d8fbc3,新增 2 个提交(80f7456 docs: 新增维护日志 2026-08-24 与文章《期望》5d8fbc3 chore: auto-fix content) ✅
  • 检查子模块 themes/PaperMod:当前 commit d376885,与远端登记一致,无需更新

遇到的问题

  • scripts/dist/ 目录在 master 上含 22 个 .js 文件(约 2000+ 行),疑似 deno bundle 产物被一并提交 ⚠️ - 与仓库规范「scripts/ 只放 .ts 源文件」冲突,且 .gitignore 未屏蔽;暂未处理,等用户决策

下次建议

  • .gitignore 加上 scripts/dist/,并 git rm -r --cached scripts/dist/ 清理已追踪的产物
  • 考虑 scripts/dist/ 是否为某个 CI 步骤的有意产物(如 deno bundle 后给 GitHub Actions 用);若是,应改为产到 tmp/ 或 artifact 上传,不进版本控制

维护记录(追加:清理 scripts/dist/)

完成的工作

  • 经调查确认 scripts/dist/ 不是 Deno 产物:所有文件 shebang 是 #!/usr/bin/env node,注释里教 node scripts/dist/xxx.js 跑,是早期 Node.js 时代的旧快照;整个仓库(.github/scripts/deno.jsonAGENTS.mdREADME.md)零引用
  • scripts/dist/ 内容陈旧:缺 lib/fs.jslib/paths.js(2026-08-27 重构才加),缺 format-markdown.test.jsgit-commit-push.test.jsoptimize-images.test.js
  • .gitignore 末尾追加 scripts/dist/(附说明注释),防止 deploy.yml 的 git add -A 未来再次带入 ✅
  • git rm -r scripts/dist/ 一次性删除 21 个 .js(8 根 + 3 lib + 10 tests;非之前估算的 22 个),工作树与索引干净 ✅

决策

  • 只删追踪 + 加 ignore,不动历史git filter-repo / git filter-branch 改写历史需要额外确认(force push + 重写已发布 commit),且 git rm 已能让远端立即干净,没必要扰动共享历史
  • commit message 用 chore(scripts): remove dead scripts/dist/:明确分类,避免 git-commit-push.ts 自动分类把它误归到 chore(rename)/chore(format) 之类的奇怪类别

下次建议

  • deploy.yml 的 git-commit-push.tsgit add -A,理论上能绕过 .gitignore 引入意外产物;当前已用 ignore 兜底,可加一个 deploy 步骤在 commit 前 git status --porcelain + 白名单校验,只允许 content/static/scripts/**/*.{ts,json}themes/PaperModdeno.*hugo.toml.github/workflows/* 等路径进入 commit
  • 如未来真需要「发布到 Node.js」的脚本产物(如 npm 包),应改用 deno compile 直接产出二进制,或在 release workflow 里产到 artifact,不进 master