Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

941 Commits

Folders and files

Repository files navigation

Krish Desai — Academic Website

Personal academic website for Krish Desai, a machine learning researcher at Lawrence Berkeley National Laboratory working on unfolding, inference, and practical statistics for particle physics. Built with Jekyll and hosted on GitHub Pages at desai.ml.

Local Development

Prerequisites

  • Ruby (managed via rbenv or system Ruby)
  • Bundler
  • Node.js & npm
  • uv (Python package manager, Python 3.13+)

Setup

bundle install   # install Ruby gems
npm install      # install Node.js tools
uv sync          # install Python packages

Serve

bundle exec jekyll serve -lI

The site is available at http://127.0.0.1:4000.

Build

# Production build
bundle exec jekyll build

# Minify JavaScript (_main.js → main.min.js)
npm run build

Project Structure

.
├── _config.yml          # Jekyll configuration (site metadata, collections, plugins)
├── _data/
│   ├── cv.json          # Structured CV data (auto-generated by update_cv.py)
│   └── navigation.yml   # Site navigation menu
├── _experience/         # Work experience entries
├── _includes/           # Reusable HTML partials
├── _layouts/            # Page layout templates
├── _pages/              # Static pages (about, publications, talks, teaching, cv, contact)
├── _publications/       # Publication entries
├── _sass/               # SCSS stylesheets
├── _talks/              # Talk and presentation entries
├── _teaching/           # Teaching history entries
├── assets/
│   └── js/
│       ├── _main.js     # Source JavaScript (theme toggle, BibTeX modals)
│       └── main.min.js  # Minified output (generated by npm run build)
├── files/               # PDFs and downloadable resources
├── talkmap/             # Generated interactive talk location maps
├── talkmap.py           # Geocodes talk locations and generates Leaflet maps
└── update_cv.py         # Reads collection frontmatter and writes _data/cv.json

Content Collections

Each collection lives in a _<name>/ directory. Files use date-prefixed slugs (YYYY-MM-DD-descriptive-slug.md) with YAML frontmatter.

Publications (_publications/)

---
layout: publication
title: "Paper Title"
collection: publications
category: manuscripts # manuscripts | conferences | preprints | theses
permalink: /publications/2024-01-01-slug
date: 2024-01-01
venue: "Journal or Conference Name"
paperurl: "https://..."
citation: "Author et al. (2024). ..."
authors: "<strong>Krish Desai</strong>, Co-Author"
# Optional link fields:
doi: "10.xxxx/..."
arxiv: "2401.xxxxx"
scix: "..."
inspirehep: "..."
researchgate: "..."
code: "https://github.com/..."
---

Wrap your own name in <strong> tags to bold it in author lists.

Talks (_talks/)

---
layout: talk
title: "Talk Title"
collection: talks
type: "Talk" # Talk | Poster | Seminar
permalink: /talks/2024-01-01-slug
venue: "Conference Name"
date: 2024-01-01
location: "City, Country"
link: "https://..."
---

Experience (_experience/)

---
layout: experience
title: "Job Title"
collection: experience
type: "Internship"
permalink: /experience/2024-company
venue: "Organization Name"
date: 2024-06-01
end_date: 2024-08-31
location: "City, State"
logo: "/assets/images/logo.png"
logo_dark: "/assets/images/logo-dark.png"
---

Teaching (_teaching/)

---
layout: teaching
title: "Role Title"
collection: teaching
type: "Associate Instructor"
course: "COURSE 101"
venue: "University Name"
year: 2024
semester: "Fall"
location: "City, State"
materials: "https://..."
description: "Course description."
---

Python Scripts

talkmap.py

Geocodes talk locations via the Nominatim API and generates interactive Leaflet maps in the talkmap/ directory.

uv run talkmap.py

update_cv.py

Reads YAML frontmatter from _publications/, _talks/, _experience/, and _teaching/ and writes structured data to _data/cv.json.

uv run update_cv.py

CI/CD

Three GitHub Actions workflows automate deployment and data updates:

Workflow Trigger Action
pages.yml Push to master Builds Jekyll site and deploys to GitHub Pages
update_cv.yml Changes to collections or update_cv.py Runs update_cv.py and commits updated _data/cv.json
scrape_talks.yml Changes to _talks/ or talkmap.py Runs talkmap.py and commits updated map files

Technology Stack

Layer Technology
Static site generator Jekyll 4.4
CSS preprocessor Dart Sass via sass-embedded
JavaScript minification Terser
Python dependency management uv
Hosting GitHub Pages
Maps Leaflet via getorg
Geocoding Nominatim via geopy

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages