Personal/Academic website for Seth Woo. This repository combines a Hugo site (PaperMod theme) with a small Vite + React app used for the ASCII overlay experience, all deployed to GitHub Pages.
- Purpose of the website is to showcase (but not limited to):
- My updated Curriculum Vitae
- My Socials
- Relevant news/updates
- Courses that I've taken/currently taking/currently teaching
- Projects old/new
- Publications (conference papers, journal papers, workshop, preprints, etc.) AND
- My Obsidian Vault, hosted as a functional website (I've termed this :re garden for now) on GitHub Pages with the help of Quartz 4 (https://quartz.jzhao.xyz/)
- It serves as a personal portfolio for all things ME :D
- The website is built with Hugo v0.147.2 via GitHub Actions, and hosted on GitHub Pages.
Quick links
- Site config:
config.yml - Hugo content:
content/ - Theme:
themes/PaperMod/ - Vite app:
ascii-overlay/ - Vite build output (checked in):
static/vite/
Tech stack
- Hugo (extended) for static site generation
- PaperMod theme
- Vite + React for the ASCII overlay
- GitHub Actions for CI/CD
- GitHub Pages for hosting
Build & deploy overview
- Vite app builds to
static/vite/and is served by Hugo as static assets. - Hugo renders the site to
public/. - GitHub Actions builds on every push to
mainand deploys to GitHub Pages.
Local development
- Install Hugo (extended) and Node.js.
- Install Vite app dependencies:
cd ascii-overlaythennpm install. - Run the ASCII overlay app in dev mode:
npm run dev. - In a separate terminal, run Hugo locally:
hugo server -D.
Full build (matching CI)
- Build the Vite app:
cd ascii-overlaythennpm run build. - Build the Hugo site:
hugo --minify. - The generated site is in
public/.
Repository structure
archetypes/: Hugo content templatesassets/: Hugo Pipes assets (processed during build)content/: Markdown content for pages and sectionslayouts/: Hugo layout overridesstatic/: Static files served as-isstatic/vite/: Compiled Vite bundle (ASCII overlay)themes/PaperMod/: Theme sourceascii-overlay/: Vite + React sourcepublic/: Hugo build output (generated)
Versioning
- Site releases are implicitly versioned by git commits on
main. - CI pins Hugo to
0.147.2(see.github/workflows/hugo.yml). - The Vite app declares
version: 0.0.0inascii-overlay/package.json. - Frontend toolchain versions are locked by
ascii-overlay/package-lock.json.
Notes
- The Vite build config outputs a deterministic bundle (
static/vite/vite.jsandstatic/vite/vite.css) to keep the Hugo integration simple. - If you change the Vite app, re-run its build so the Hugo site picks up the updated bundle.
This project is based on the template provided by hugo-website.
This repository is licensed under the MIT License.