Repository Guidelines

Repository Guidelines

Project Structure & Module Organization

  • _config.yml holds site-wide settings and must be updated for global metadata.
  • _data/ contains YAML data files (for example navigation.yml, authors.yml, ui-text.yml).
  • Content pages live in _pages/, while blog posts live in _posts/.
  • The academic sections are in _publications/, _talks/, _teaching/, and _portfolio/.
  • Theme building blocks are in _includes/, _layouts/, and _sass/.
  • Static assets and downloads are in assets/, images/, and files/.
  • Content generators live in markdown_generator/ and the talk map tooling uses talkmap.py.

Build, Test, and Development Commands

  • bundle install: installs Ruby/Jekyll dependencies from Gemfile.
  • jekyll serve -l -H localhost: runs the local site at http://localhost:4000 with live rebuilds.
  • npm run build:js: minifies theme JavaScript into assets/js/main.min.js.
  • npm run watch:js: rebuilds the minified JS when files under assets/js/ change.
  • docker build -t jekyll-site .: builds the containerized dev environment.
  • docker run -p 4000:4000 --rm -v $(pwd):/usr/src/app jekyll-site: serves the site via Docker.

Coding Style & Naming Conventions

  • YAML uses two-space indentation (see _config.yml and _data/*.yml).
  • Markdown content files should include YAML front matter at the top.
  • Blog posts follow YYYY-MM-DD-title.md naming in _posts/ and use kebab-case.
  • Keep JavaScript changes in assets/js/ and rebuild the minified bundle before publishing.

Testing Guidelines

  • There is no automated test suite; validate changes by running jekyll serve and checking pages in the browser.
  • For content changes, verify navigation, links, and layout rendering on key pages.

Commit & Pull Request Guidelines

  • Recent history uses short, descriptive messages (for example CV update). Keep commits concise and specific.
  • PRs should describe the change, list any updated pages, and include screenshots for layout or styling edits.
  • If a change is intended for the upstream Academic Pages template rather than this site, open an issue/PR there instead of broad refactors here.

Security & Configuration Tips

  • Treat everything in files/ and images/ as public; avoid uploading private documents.
  • Changes to _config.yml require restarting the Jekyll server to take effect.