Project Overview
Project Overview
This is a personal academic website for Tianhao Wang, an assistant professor at the University of Virginia. The website is built using the “Academic Pages” Jekyll theme and is hosted on GitHub Pages. It serves as a portfolio to showcase his publications, research, and other academic activities. The site also includes a blog and pages for teaching and students.
The website uses Jekyll for static site generation, with styling done in SCSS. It also incorporates JavaScript for interactive elements, with dependencies managed through npm and bundled using webpack.
Building and Running
To work on this project locally, you’ll need to have Ruby, Bundler, and Node.js installed.
- Install dependencies:
- Ruby dependencies:
bundle install
- JavaScript dependencies:
npm install
- Ruby dependencies:
- Build the site:
- To build the Jekyll site, run:
bundle exec jekyll build
- To build the JavaScript assets, run:
npm run build
- To build the Jekyll site, run:
- Run the local server:
- To serve the site locally with auto-regeneration, run:
bundle exec jekyll serve -l -H localhost
- To watch for changes in JavaScript files and automatically rebuild them, run:
npm run watch
- To serve the site locally with auto-regeneration, run:
Development Conventions
- Content: All content is written in Markdown.
- Blog posts are located in the
_posts
directory. - Pages are located in the
_pages
directory. - Publications are in the
_publications
directory. - Data files (e.g., for navigation, UI text) are in the
_data
directory.
- Blog posts are located in the
- Styling: Styles are written in SCSS and are located in the
_sass
directory. The main stylesheet isassets/css/main.scss
. - JavaScript: JavaScript files are in the
assets/js
directory. The main entry point is_main.js
. Thewebpack.config.js
file defines how the JavaScript is bundled. - Configuration: The main site configuration is in
_config.yml
. Author information is also managed in this file.