Repository Guidelines
Repository Guidelines
Project Structure & Module Organization
The site follows the Academic Pages Jekyll layout. Page templates live in _layouts/
and reusable snippets in _includes/
. Long-form content sits under _pages/
, while dated updates use _posts/
. Research artifacts belong in _portfolio/
, _talks/
, _publications/
, and _teaching/
. Store shared data in _data/
and SCSS partials inside _sass/
. Upload images to images/
or assets/img/
, and keep PDFs or datasets in files/
. JavaScript sources live in assets/js/
; rebuild assets/js/main.min.js
after editing them. Notebook helpers reside in markdown_generator/
and must be run before checking in generated Markdown.
Build, Test, and Development Commands
bundle install
— install Ruby gems; usebundle config set --local path 'vendor/bundle'
for an isolated vendor tree.bundle exec jekyll serve -l -H localhost
— launch the live-reload dev server athttp://localhost:4000
.bundle exec jekyll build
— create the production-ready_site/
snapshot; run before committing.bundle exec jekyll doctor
— scan for configuration or front matter issues after structural changes.npm install
thennpm run build:js
— install JS dependencies and rebuild the minified bundle wheneverassets/js/
changes.
Coding Style & Naming Conventions
Use 2-space indentation across Liquid, SCSS, and YAML. Keep YAML front matter compact and quote only when needed. Markdown files should favor sentence case headings; blog posts follow the YYYY-MM-DD-title.md
pattern. Maintain Liquid readability with {% %}
and {{ }}
surrounded by single spaces. SCSS in _sass/
uses BEM-like selectors such as .site-nav__item
. Never edit assets/js/main.min.js
directly; modify sources and rebuild.
Testing Guidelines
Run bundle exec jekyll build
to catch Liquid or front matter failures before committing. Follow with bundle exec jekyll doctor
whenever configuration, collections, or layouts change. After touching JavaScript, execute npm run build:js
and spot-check the site via bundle exec jekyll serve
. Regenerate content from markdown_generator/
and compare diffs to confirm expected ordering.
Commit & Pull Request Guidelines
Write concise, present-tense commit messages (e.g., “Update competition awards section in about.md”). Group unrelated changes into separate commits. Pull requests should explain the motivation, list key files, and link related issues. Include screenshots or local URLs when altering layouts or styling, and explicitly call out _config.yml
modifications so reviewers can assess deployment impact.