Static website for the Search-Based Planning Lab at Carnegie Mellon University. Built with Hugo and Pico.css.
- Hugo (extended edition, v0.120+)
hugo serveOpen http://localhost:1313 in your browser. Changes are live-reloaded automatically.
- Open
data/members/current.yaml - Copy an existing entry and fill in your details:
- name: "Your Full Name" # MUST match your name in publications exactly slug: "your-full-name" # lowercase, hyphens (auto-generated from name) category: "phd" # phd | masters | undergraduate | postdoc year: "1st year" # optional photo: "/images/members/your-full-name.jpg" bio: > A short paragraph about your research interests and background. links: website: "https://yoursite.com" # optional scholar: "https://scholar.google..." # optional github: "https://github.com/you" # optional
- Add your headshot photo to
static/images/members/your-full-name.jpg- Square aspect ratio (400×400px recommended)
- JPEG format, reasonable file size (<500KB)
- Commit and push. The site deploys automatically.
- Create a new file
content/publications/short-descriptive-name.md:--- title: "Your Paper Title" date: 2025-06-15 # Publication date authors: # MUST match names in data/members/*.yaml - "Your Name" - "Coauthor Name" - "Maxim Likhachev" first_authors: 2 # optional: number of co-first authors venue: "ICRA 2025" description: "A one-sentence summary of the paper for the card view." thumbnail: "/images/publications/short-descriptive-name.gif" arxiv: "https://arxiv.org/abs/XXXX.XXXXX" # optional project_page: "https://yourproject.github.io/" # optional code: "https://github.com/your/repo" # optional draft: false --- Optional extended abstract or description (rendered on the publication's page).
- Add a thumbnail GIF/image to
static/images/publications/short-descriptive-name.gif- Small animated GIF showing key result (~180×120px display, keep file <2MB)
- Important: Make sure author names in the
authorslist match exactly how they appear indata/members/current.yamlordata/members/alumni.yaml. This is how publications auto-link to member profiles. - Co-first authors: To mark multiple authors as equal contributors, add
first_authors: Nwhere N is the number of co-first authors (counted from the top of theauthorslist). They will be displayed with a*superscript and an "Equal contribution" note. - Commit and push.
- Open
data/members/current.yaml, find the student's entry - Cut (remove) their entire YAML block
- Paste it into
data/members/alumni.yaml - Add the
now_atfield and optionally agraduatedyear:- name: "Student Name" slug: "student-name" category: "phd" graduated: "2025" now_at: "Research Scientist at Google DeepMind" # ... rest of their existing fields ...
- Commit and push. Their publications remain linked automatically.
Edit data/members/pi.yaml. Fields:
name,title,photo,email,bio,research_vision,links
Publications and members are linked automatically via Hugo's taxonomy system:
- Each publication lists its
authorsin front matter - Hugo auto-generates a page at
/authors/author-name/listing all their papers - Member cards check
/authors/<slug>/to count and link to that member's publications - The key: the
namefield in member YAML must exactly match the name string used in publicationauthorslists
This means:
- Adding a publication automatically updates every co-author's profile
- No need to manually maintain per-person publication lists
- Moving a member to alumni doesn't break their publication links
The site auto-deploys to GitHub Pages via GitHub Actions on every push to main.
- Go to your GitHub repo → Settings → Pages
- Under "Source", select "GitHub Actions"
- Push to
main— the workflow in.github/workflows/deploy.ymlhandles the rest
To use a custom domain (e.g., sbpl.cs.cmu.edu):
- Add a
CNAMEfile tostatic/containing your domain - Configure DNS to point to GitHub Pages
- Update
baseURLinhugo.toml