Stack
- This repo is a Jekyll site built via the
github-pages gem in Gemfile, not a Node app. Use Bundler-backed commands for site work. - There is no repo-local CI, lint, typecheck, or test config to mirror. Verification is usually a local Jekyll build/serve.
Commands
- Install Ruby deps with
bundle install. - Run the site locally with
bundle exec jekyll serve -l -H localhost. - Use
bundle exec jekyll build for a one-off verification build. - Node is only used to rebuild the shipped JS bundle:
npm install then npm run build:js.
Critical Gotchas
_config.yml is not hot-reloaded by Jekyll here; restart jekyll serve after changing it.- The site loads
assets/js/main.min.js from _includes/scripts.html. If you edit assets/js/_main.js or files under assets/js/plugins/, rebuild with npm run build:js or your change will not ship. Gemfile.lock is intentionally gitignored in this repo.
Content Map
- Root site settings, author metadata, collection config, and excludes live in
_config.yml. - Top nav links are driven by
_data/navigation.yml. - The homepage is
_pages/about.md with permalink: /. - Main content collections are
_publications/, _talks/, _teaching/, _portfolio/, plus regular posts in _posts/. - Static downloadable files belong in
files/.
Templating Conventions
- Publication pages depend on custom front matter used by
_layouts/single.html and _includes/archive-single.html: author, venue, paperurl, codeurl, citation, and optional HTML excerpt. - Collection landing pages in
_pages/ usually render by looping over site.publications, site.talks, or site.teaching; preserve those front matter keys when adding entries. - Custom head additions, including favicon links and MathJax, live in
_includes/head/custom.html.
Generators
markdown_generator/ contains optional Python/Jupyter generators that write markdown into ../_publications/ from TSV or BibTeX sources.talkmap.py expects to be run from the _talks/ directory; it scans local *.md talk files and writes output into ../talkmap/.