This repository contains the source code for Junjie Nian's personal academic homepage. It is a fully static website built with plain HTML, CSS, and vanilla JavaScript, and is designed to be hosted directly on GitHub Pages without any build step.
The site is organized as a small multi-page portfolio:
index.html– landing page with hero section and navigation cardsacademic.html– publications, new papers, and honorsprojects.html— research projects, technical work, and side explorationsresearch/*.html— standalone technical stories for each research projectexperience.html— research experience and education background
- HTML5 for page structure
- CSS3 for layout, typography, and responsive design
- Vanilla JavaScript for page interactions
- Google Fonts (
Cormorant Garamond,Karla) for typography - GitHub Pages for deployment
.
├── README.md
├── index.html
├── academic.html
├── projects.html
├── experience.html
├── research/
│ └── *.html
└── assets/
├── avatar.jpg
├── cv.html
├── cv.pdf
├── landing.css
├── landing.js
├── main.js
├── pages.css
├── shared.css
└── *.png / *.jpg / *.gif
assets/shared.csscontains shared styles used across all pagesassets/landing.cssstyles the homepage hero and navigation cardsassets/pages.cssstyles the internal content pagesassets/research.cssstyles the project detail and technical-story pagesassets/landing.jscontrols landing-page interactionsassets/main.jspowers scroll/reveal behaviors on the content pages
In addition, projects.html includes a small inline lightbox script for enlarging project images.
Because the site is fully static, you can preview it with any simple local server.
python -m http.server 8000Then open http://localhost:8000.
You can also use the Live Server extension and open index.html from the workspace root.
Edit index.html to update:
- name and Chinese name
- affiliation and short bio
- contact links such as GitHub, email, and CV
- hero text and homepage entry points
Edit academic.html to maintain:
- new papers
- honors and awards
- publication list
- advisor and lab information
Edit projects.html to maintain:
- project descriptions
- screenshots and media under
assets/ - tags and external links
- links to the corresponding project stories under
research/
Edit experience.html to maintain:
- research experience
- education timeline
- cross-links to publications and projects
Store static assets in assets/, then reference them with relative paths such as:
<img src="assets/avatar.jpg" alt="Junjie Nian">
<a href="assets/cv.pdf" download>CV</a>This repository is suitable for direct deployment on GitHub Pages:
- Push changes to the default branch
- Open the repository on GitHub
- Go to Settings → Pages
- Set the source to Deploy from a branch
- Select the default branch and the repository root
No bundler, package manager, or static-site generator is required.
- Keep all asset references relative so the site works correctly on GitHub Pages
- If you rename files in
assets/, update every related reference in the HTML files - Shared layout changes should usually go into
assets/shared.css - Page-specific tweaks should stay in
assets/landing.cssorassets/pages.css - If you add a new page, remember to update the navbar links on the internal pages
- Verify the referenced path matches the actual file under
assets/ - Keep image paths relative instead of using local absolute paths
- Make sure the filename case matches exactly, especially on GitHub Pages
- Confirm
assets/landing.jsorassets/main.jsis loaded on the relevant page - Open browser DevTools and check for JavaScript errors
- Make sure the latest changes are pushed to the published branch
- Check Settings → Pages for the deployment status
- Wait a minute or two for GitHub Pages to finish rebuilding
This repository is intended for personal homepage source management. Reuse the structure if helpful, but please replace personal content, publications, and assets with your own before publishing.