Repository Guidelines

Repository Guidelines

Project Structure & Module Organization

This repository is an Academic Pages/Jekyll site. Site configuration lives in _config.yml and _config.dev.yml. Content collections are organized by purpose: _pages/, _posts/, _publications/, _talks/, _teaching/, and _portfolio/. Layout templates are in _layouts/, reusable snippets are in _includes/, and navigation/authors text is in _data/. Styles are split across _sass/ and compiled through assets/css/main.scss; JavaScript sources are in assets/js/, with the minified bundle at assets/js/main.min.js. Store PDFs and documents in files/, and images in images/. The markdown_generator/ scripts and notebooks generate publication and talk Markdown from TSV data.

Build, Test, and Development Commands

  • bundle install: install Ruby dependencies from Gemfile.
  • bundle exec jekyll serve -l -H localhost: run the local site at http://localhost:4000 with live reload.
  • bundle exec jekyll build: build the static site and catch errors.
  • npm install: install JavaScript tooling used by the theme.
  • npm run build:js: rebuild assets/js/main.min.js from vendor plugins and assets/js/_main.js.
  • python markdown_generator/publications.py: regenerate publication entries from markdown_generator/publications.tsv.

Coding Style & Naming Conventions

Use two-space indentation for YAML, HTML/Liquid, SCSS, and JavaScript. Keep Markdown front matter complete and consistent with existing examples. Name dated posts as YYYY-MM-DD-title.md; collection entries should use clear lowercase slugs such as _talks/2014-03-01-talk-3.md. Prefer existing includes, layouts, and Sass partials before adding new structure. Do not edit vendored files under _sass/vendor/ or assets/js/vendor/ unless updating the upstream dependency intentionally.

Testing Guidelines

There is no dedicated unit test suite. Validate changes with bundle exec jekyll build before committing. For visual or navigation changes, run the local server and inspect affected pages, including mobile width when layout or Sass changed. After JavaScript edits, run npm run build:js and verify the rebuilt minified file is intentional.

Commit & Pull Request Guidelines

Recent history uses short imperative messages, for example updata navigation and updata publacations; keep commits concise but use corrected wording such as update navigation or add publication entry. Pull requests should describe affected pages or collections, list local validation commands, link related issues, and include screenshots for visible layout, image, or navigation changes.

Content & Configuration Tips

Keep public files relative to the site root, for example /files/paper1.pdf or /images/profile.png. Update _data/navigation.yml when adding menu pages, and check _config.yml for collection settings before creating new content types.