Skip to main content

核心原则

「零构建」指运行时不经过打包:源码 public/*.js、public/*.css 直接可读,同时仓库里提交了对应的 *.min.js / *.min.css 产物供线上加载。产物由 node scripts/minify.mjs 生成,不要手工编辑。

JavaScript 规范

文件头

命名

缩进

2 空格。

兼容性

  • 前端只使用浏览器原生 API(无 polyfill、无转译),因此 public/*.js 保持 ES5 风格写法(var / function),便于 file:// 直接预览
  • 后端 functions/ 与 worker.js 运行在 Workers 运行时,可使用 ES Module 语法(import / export)

SQL 规范

  • 新建表使用 CREATE TABLE IF NOT EXISTS
  • 索引使用 CREATE INDEX IF NOT EXISTS
  • 查询使用参数化绑定(db.prepare(sql).bind(...)),不拼接字符串
  • SQLite 没有 ADD COLUMN IF NOT EXISTS:加列迁移无法幂等,必须在 .github/workflows/deploy.yml 的列预检 case 分支里登记「表名 + 列名」,详见迁移脚本
  • 索引列顺序遵循 (等值过滤列 …, 排序列 …),让 SQLite 免去临时排序;注意 SQLite 不允许把 rowid 用作索引列

CSS 规范

  • CSS 变量定义主题色(明暗主题 × 4 种强调色:terra / indigo / bamboo / dusk)
  • 响应式断点统一
  • 新增重资源(播放器、背景动画等)不要在首屏关键路径加载

文档规范

主仓库文档中英双语:长文档统一放在 docs/,采用 X.md + X_EN.md 成对文件(首行互相链接做语言切换),短文档在单个文件内中英对照;新增文档要补进 docs/README.md 的「文档索引」表。中文表述是权威版本,英文版与中文版同步更新。

Git 规范

分支命名:feature/、fix/、docs/、refactor/ Commit 格式:Conventional Commits

测试

三套测试都只用 Node 内置模块(无网络、无凭据依赖),CI 部署前自动运行,失败即中止。修改前端渲染、评论/留言板、搜索相关逻辑后请一并补测试用例。