No description
| public | ||
| src | ||
| .dockerignore | ||
| .gitignore | ||
| astro.config.mjs | ||
| Dockerfile | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
Maoran (Andy) Li — personal site
A small Astro static site. Warm-editorial, minimalist, dark by default with a light toggle.
Run it
cd website
npm install # first time only
npm run dev # live preview at http://localhost:4321
Build & deploy
npm run build # outputs static files to ./dist
Point your Caddy root at website/dist and serve with file_server. Example:
your-domain {
root * /path/to/website/dist
encode zstd gzip
file_server
}
Nothing server-side runs — dist/ is plain HTML/CSS/JS.
How to make changes (the common stuff)
| I want to… | Edit this file |
|---|---|
| Add / change a publication | src/data/publications.js |
| Add / reorder a photo or video | src/data/galleries.js (drop the file in public/assets/… first) |
| Change nav links | src/components/Nav.astro |
| Change footer | src/components/Footer.astro |
| Edit About / Home text | src/pages/about.astro, src/pages/index.astro |
| Colours, fonts, spacing | src/styles/global.css (the :root design tokens at the top) |
Spots marked ✏️ in src/pages/about.astro and src/data/publications.js
are left for you to personalise.
Project layout
website/
├── public/ # served as-is at the site root
│ ├── assets/img/ # photos
│ ├── assets/video/ # videos + posters
│ └── cv/CV.pdf
├── src/
│ ├── layouts/Base.astro # <head>, nav, footer, scripts — one place
│ ├── components/ # Nav, Footer, Pub (paper card), Gallery
│ ├── data/ # publications.js, galleries.js ← edit these
│ ├── pages/ # index / about / research / life
│ ├── styles/global.css # all styling + design tokens
│ └── scripts/main.js # theme toggle, mobile nav, reveal, lightbox
├── astro.config.mjs
└── package.json