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:
Only
- 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 enrollment: "RI PhD, Fall 2025" # optional, shown next to your name on /people/ co_advisor: # optional, shown as "(co-advised with <name>)" name: "Co-Advisor Name" website: "https://their-site.com" photo: "/images/members/your-full-name.jpg" bio: > A short paragraph about your research interests and background. links: website: "https://yoursite.com" # optional; your name and photo link here
websiteis shown on/people/(Google Scholar is shown for the advisor only). - Add your headshot photo to
static/images/members/your-full-name.jpg- Portrait 2:3 aspect ratio (400×600px recommended); it is shown uncropped
- JPEG format, reasonable file size (<500KB)
- Commit and push. The site deploys automatically.
/publications/ lists papers from 2024 on (from_year in
content/publications/_index.md), with links to Maxim's Google Scholar profile
for the full list. Older papers keep their files but aren't listed.
- Create a new file
content/publications/short-descriptive-name.md:--- title: "Your Paper Title" date: 2025-06-15 # Publication date (the year sets its section) scholar_rank: 12 # optional: its position on Maxim's Google Scholar # profile (sorted by year). Within a year, papers with # a thumbnail come first, then all are ordered by # venue (`venue_order` in # content/publications/_index.md), then by this; # papers without one come first in their venue. 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" # image, GIF or short .mp4 arxiv: "https://arxiv.org/abs/XXXX.XXXXX" # [Paper] link (else pdf, then doi) doi: "https://doi.org/10.XXXX/XXXXX" # optional project_page: "https://yourproject.github.io/" # optional [Project Page] link code: "https://github.com/your/repo" # optional draft: false --- Optional extended abstract or description (rendered on the publication's page).
- Add a thumbnail to
static/images/publications/and pointthumbnailat it- An image, GIF, or short silent .mp4 clip showing the key result (shown 220px wide, at most 200px tall; keep files small, ideally <2MB). Clips loop while on screen.
- 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 ...
- Add a line for them to the right group (PhD, Master’s, …) in the
alumnilist at the top ofcontent/people/_index.md; that list is what/people/shows. - Commit and push. Their publications remain linked automatically.
The Archive menu item opens a tabbed section under content/archive/
(the tabs are listed in layouts/partials/archive-tabs.html):
- Software (
content/archive/software.md): each card is an item undergroupsin the front matter (name,description,linksof{label, url}). - Videos (
content/archive/videos.md): add{ id, title }under a group, whereidis the YouTube video ID (youtube.com/watch?v=<id>). - Tutorials (
content/archive/tutorials/): one page per tutorial;weightsets the order. The existing ones are the archived sbpl.net pages, kept as HTML. - Contact (
content/contact.md): plain HTML cards.
The homepage carousel shows every image in static/images/lab-photos/, in
filename order. Crop new photos to 4:3 (e.g. 1600×1200) before adding them.
The Research Demos under the lab description are the papers listed under
demos in content/_index.md, in that order. Each entry is a publication file
name from content/publications/ without .md; its tile plays the paper's
thumbnail clip or GIF (no text) and links to its project page. To show a
different clip here than on /publications/, add demo: "/images/…mp4" to the
paper's front matter (DISCO uses this for its real-world runs).
Edit data/members/pi.yaml. Fields:
name,title,photo,email,bio,links
There are no per-person pages. On /people/, each member's name and photo link
straight to their links.website; on /publications/, author names are plain
text and each title links to the paper's project page or PDF.
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