Static website for the ML Paper Reading Group (Augusta University), built with Svelte 5 + SvelteKit and deployed to GitHub Pages via GitHub Actions.
URL: https://mlprg.github.io/website/
- SvelteKit app (static site / prerendered)
- Dark modern UI with a shared nav + routes:
/(home)/papers(papers list; includes “reviewed” marker + review date)/schedule(meeting schedule)/leadership(leadership team)
- GitHub Actions
ci.ymlruns checks on PRs and pushesdeploy.ymlpublishes to GitHub Pages after CI passes onmain
File: src/lib/data/papers.ts
Add/edit entries in PAPERS. This is the master list of all papers the group tracks.
Each paper includes fields like:
titlelink(optional)authorscitationcontributionproposer
File: src/lib/data/schedule.ts
Edit SCHEDULE to add new meetings, update dates, fill in leaders, or set paper titles.
Important: The “reviewed” marker for papers is computed by matching meeting paperTitle values to papers.ts titles (with normalization). If you rename a paper title in either place, keep them roughly consistent.
File: src/lib/data/review.ts
This file:
- matches schedule entries to papers
- sets
reviewed: true/false - attaches
reviewDate,term,meetingLabel,discussionLeaders - sorts papers by review date (reviewed first)
If the matching ever fails because a schedule title differs too much from the paper title, adjust the normalization in review.ts.
File: src/lib/data/leadership.json
Update names/roles/links here. This drives /leadership.
Directory: src/routes/
src/routes/+page.svelte→ Homesrc/routes/papers/+page.svelte→ Papers pagesrc/routes/schedule/+page.svelte→ Schedule pagesrc/routes/leadership/+page.svelte→ Leadership pagesrc/routes/+layout.svelte→ shared layout (nav/footer)src/routes/+layout.ts→ prerender/trailingSlash settings
Directory: src/lib/components/
Nav.svelte→ site navigation header
src/app.css→ global theme (dark styling, layout utility classes)
Directory: static/
static/logo.png→ group logo (referenced by nav/home)static/favicon.ico,static/robots.txt
Anything in static/ is copied directly into the built site root.
make installmake devmake buildmake previewmake lintmake checkmake formatIn CI, formatting should be enforced with prettier --check (not --write) so the workflow fails if someone forgets to format.
Run make or make help to see all targets.
Common ones:
make install– install dependencies (npm ci)make dev– run dev servermake build– build static sitemake check– svelte-check/typecheckmake lint– eslint + prettier checkmake format– prettier writemake overview– prints tree + routes + config snapshotsmake search PATTERN="..."– grep throughsrc/
Deployment happens via GitHub Actions workflows in .github/workflows/:
ci.ymlrunsformat/check/lint/buildfor PRs and pushes.deploy.ymldeploys to GitHub Pages only after CI succeeds onmain.
In the GitHub repo:
- Go to Settings → Pages
- Under Build and deployment, select GitHub Actions
After merging to main, the site will be available at:
https://<user>.github.io/<repo>/
.github/workflows/– CI + Pages deploysrc/lib/data/– content source of truth (papers, schedule, leadership)src/routes/– pagessrc/app.css– global styling/themestatic/– logo/favicon/robots and other static filesMakefile– common commands
-
Add it to
src/lib/data/papers.ts -
If it’s already scheduled/reviewed, add/update the meeting in
src/lib/data/schedule.ts -
Run:
make lint && make check && make build