This guide covers how the site is built, tested, and published. For step-by-step instructions on editing content cards (people, publications, projects), see Editing_Document.md.
The site is a static GitHub Pages project. Pages are plain HTML with shared CSS and JavaScript.
| Item | Value |
|---|---|
| Live URL | https://seat-lab.github.io/ |
| Organization | SEAT-Lab |
| Repository | SEAT-Lab.github.io |
| Development branch | main |
| Published branch | publish |
SEAT-Lab.github.io/
├── index.html # Homepage
├── projects.html # Projects page
├── publications.html # Publications archive
├── styles.css # Shared styles
├── script.js # Shared behavior (nav, bios, projects, scroll)
├── publications.js # Publications page (year sections, counts)
├── toc.js # Floating table of contents (publications)
├── sitemap.xml # Search engine sitemap
├── assets/ # Images (favicon, etc.)
├── docs/ # Documentation
│ ├── Site_Development.md
│ └── Editing_Document.md
├── .github/workflows/ # Publish automation
└── local-support/ # Local dev tools
├── local_server.py
└── requirements.txt
Every public page loads:
styles.css— layout, typography, cards, navigation, responsive rulesscript.js— mobile menu, smooth scrolling, researcher bio toggles, project card collapse, progress bar, active nav highlighting
Additional scripts by page:
| Page | Extra scripts |
|---|---|
publications.html |
toc.js, publications.js |
From the repository root:
python local-support/local_server.pyThis serves the repo at http://localhost:8080 and opens a browser. HTML responses include a lightweight auto-refresh hook when file watching is available.
Install the optional dependency once:
pip install -r local-support/requirements.txtWith watchdog installed, the local server can detect HTML/CSS/JS changes and prompt a refresh automatically.
Always develop on main:
git checkout main
git pull origin main
# edit files
git add .
git commit -m "Describe your change"
git push origin mainPushing to main does not update the live site when GitHub Pages is configured to deploy from publish.
When changes on main are ready to go live:
git push origin main:publishAlternatively, in GitHub:
- Go to Actions
- Open Publish Site Branch
- Click Run workflow (defaults:
main→publish)
The Scheduled Publish Sync workflow runs on the 1st of every other month (UTC). It only acts in even-numbered months and only pushes when main has commits that publish does not already have.
You can also trigger it manually from Actions → Scheduled Publish Sync → Run workflow.
| Task | Where to edit | More detail |
|---|---|---|
| Add a team member | index.html → People section |
Editing_Document.md |
| Add a publication | publications.html + homepage preview in index.html |
Editing_Document.md |
| Add a project | projects.html + optional preview on index.html |
Editing_Document.md |
| Update contact info | index.html → Contact section |
Edit HTML directly |
| Change site-wide colors/fonts | styles.css (:root variables) |
Test all three pages |
| Update sitemap dates | sitemap.xml |
After adding/removing pages |
- Open
publications.html - Add a new year section or append to the correct
.year-contentblock - Copy an existing
.publication-detailed-cardand update title, authors, venue, keywords, and links - Update the floating TOC year list and counts (or rely on
publications.jsto recount on load) - Optionally add a highlight card on
index.html - Update
sitemap.xml<lastmod>if needed
See Editing_Document.md for full card HTML patterns.