Project Overview
Project Overview
This is a Jekyll-based academic portfolio website. It is based on the “Academic Pages” template. The site is designed to be hosted on GitHub Pages.
The site uses the following technologies:
- Jekyll: A static site generator written in Ruby.
- Liquid: A templating language used by Jekyll.
- HTML/CSS/JavaScript: The standard web technologies.
- Ruby/Bundler: For managing the Jekyll environment and its dependencies.
- Node.js/npm: For managing JavaScript dependencies and running build scripts.
- Docker: For running the site in a containerized environment.
The project is structured as a standard Jekyll site, with the following key directories:
_config.yml: The main configuration file for the Jekyll site._data: Contains data files used by the site, such as author information and navigation links._includes: Contains reusable HTML components._layouts: Contains the main HTML layouts for the site._pages: Contains the main pages of the site, such as the “About” and “CV” pages._posts: Contains the blog posts._publications: Contains the publications._talks: Contains the talks._teaching: Contains the teaching materials.assets: Contains the site’s assets, such as CSS, JavaScript, and images.markdown_generator: Contains Python scripts for generating markdown files for publications and talks.
Building and Running
There are two ways to build and run the site locally:
Using Ruby/Bundler
- Install Ruby, Bundler, and Node.js.
- Install the Ruby dependencies:
bundle install - Run the Jekyll server:
bundle exec jekyll serve -l -H localhost
Using Docker
- Install Docker and Docker Compose.
- Run the Docker container:
docker compose up
The site will be available at http://localhost:4000.
Development Conventions
- The site’s content is written in Markdown.
- The site’s layout and styling can be customized by editing the files in the
_layouts,_includes, and_sassdirectories. - JavaScript files are located in the
assets/jsdirectory and are minified usinguglify-js. The build script can be run withnpm run build:js. - The
markdown_generatordirectory contains Python scripts that can be used to generate markdown files for publications and talks from a TSV file.