Source code for my personal academic website at https://shaoguangwang.github.io/.
The site is a lightweight, build-free static page that renders Markdown content on the client, designed for clean academic use.
- No build step — pure HTML / CSS / JS, content authored in Markdown and parsed in the browser via marked.js.
- Responsive layout — works on desktop, tablet, and mobile (Bootstrap 5).
- LaTeX rendering — math via MathJax 3 (
$inline$and$$display$$). - Modular content — each section (
home,publications,awards,projects) lives in its own Markdown file undercontents/. - Hosted on GitHub Pages — push to
main, the site updates automatically in 1–3 minutes.
.
├── index.html # Page skeleton + section anchors
├── contents/ # Edit these files to update the website
│ ├── config.yml # Site-wide config (title, name, links)
│ ├── home.md # Bio, news, education, research interests
│ ├── publications.md # Paper list
│ ├── awards.md # Awards / honors
│ └── projects.md # Selected projects
├── static/
│ ├── css/
│ │ ├── styles.css # Bootstrap base theme (vendored)
│ │ └── main.css # Custom academic styling (edit this)
│ ├── js/
│ │ ├── scripts.js # App entry: loads config + renders Markdown
│ │ ├── marked.min.js # Markdown parser (vendored)
│ │ ├── js-yaml.min.js # YAML parser (vendored)
│ │ └── bootstrap.bundle.min.js
│ └── assets/
│ ├── favicon.ico
│ └── img/ # Photo, logos, paper figures
├── LICENSE
└── README.md
The site uses fetch() to load Markdown files, so opening index.html directly with file:// will not work. Serve it over HTTP:
# Python (no install needed)
python3 -m http.server 8000
# Or, with Node.js
npx serve -p 8000Then open http://localhost:8000/.
VS Code users — install the Live Server extension and click "Go Live" for auto-reload on save.
| To change... | Edit... |
|---|---|
| Bio / news / education / research interests | contents/home.md |
| Publications list | contents/publications.md |
| Awards / honors | contents/awards.md |
| Projects | contents/projects.md |
| Site title, name, social links | contents/config.yml |
| Visual styling (fonts, spacing, colors) | static/css/main.css |
| Photo / paper figures / logos | drop into static/assets/img/, then reference from Markdown |
After saving, refresh the browser. To deploy, commit and git push origin main — GitHub Pages handles the rest.
- HTML5 + CSS3 (custom
main.cssover vendored Bootstrap 5) - JavaScript (vanilla, no framework)
- Markdown rendering: marked.js 5.x
- YAML parsing: js-yaml
- Math typesetting: MathJax 3
- Icons: Bootstrap Icons
The HTML scaffold is adapted from the Start Bootstrap — New Age template (MIT licensed). The dynamic-Markdown loading approach was inspired by community academic homepages on GitHub Pages.
Distributed under the MIT License. © 2024–2026 Shaoguang Wang.