仓库贡献指南
仓库贡献指南
项目结构与模块组织
本仓库是邓岳慈的个人学术网站,基于 Jekyll 和 Academic Pages 构建。
_pages/about.md包含首页、项目介绍和论文卡片;_pages/cv.md提供网页版简历。_data/存放结构化内容,包括cv.json和导航配置;_includes/与_layouts/存放 Liquid 模板。assets/存放 CSS、JavaScript 和字体;_sass/存放主题样式;images/存放媒体资源;files/存放可下载的文档。resume/包含可独立编译的 LaTeX 简历;scripts/存放同步和构建辅助脚本。test/包含首页回归测试。_site/是构建生成的目录,请勿直接编辑或提交。
构建、测试与开发命令
在仓库根目录执行以下命令:
bundle install— 安装 Ruby 依赖。bundle exec jekyll serve --config _config.yml,_config_local.yml— 启动本地预览,访问http://localhost:4000。bundle exec jekyll build— 重新生成_site/。node --test test/*.test.js— 构建后运行回归测试;需使用支持node:test的较新 Node.js 版本。- 先执行
npm install,再执行npm run build:js— 重新生成assets/js/main.min.js;npm run watch:js用于监听 JavaScript 文件变更。 python3 scripts/sync_cv_publications.py— 将首页论文信息同步到两种格式的简历中。bash scripts/build_cv.sh— 使用 XeLaTeX 编译并将生成结果保存到files/cv.pdf;需安装 TeX Live 或 MacTeX。
代码风格与命名规范
保持与周围代码一致:HTML、CSS、JavaScript 和 YAML 使用两空格缩进,Python 使用四空格缩进。保留 Markdown 文件头部元数据和 Liquid 表达式。网页文件名与 CSS 类名应具有描述性,使用连字符分隔单词;Python 名称使用 snake_case。复用现有主题颜色变量。仓库未配置专用格式化或代码检查工具;避免无关的格式调整,打包后的 JavaScript 应通过构建命令重新生成,不要直接编辑。
测试指南
测试使用 Node 内置测试运行器和严格断言。测试文件按 test/*.test.js 命名,测试名称应描述可观察的行为。断言会读取 _site/index.html,因此测试前必须重新构建。内容变更后,应核实并更新受影响的预期值。仓库未设置测试覆盖率门槛。涉及视觉变更时,请检查桌面端与移动端布局、浅色与深色主题、论文筛选功能和简历链接。
提交与拉取请求指南
历史提交采用简短的祈使句标题,例如 Add RiCo publication to homepage,有时使用 fix: 或 chore: 前缀。每次提交应聚焦单一主题。拉取请求(PR)应说明变更内容、关联相关 issue,并提供验证结果;涉及视觉变更时应附上截图。
简历内容一致性
先编辑首页论文卡片,再运行同步脚本;不要手动修改自动生成的论文条目。确保 _data/cv.json 与 resume/main.tex 中的共有信息保持一致。修改相关源文件时,应一并提交重新生成的 resume/publications.tex 和 files/cv.pdf。
