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

  1. Install Ruby, Bundler, and Node.js.
  2. Install the Ruby dependencies: bundle install
  3. Run the Jekyll server: bundle exec jekyll serve -l -H localhost

Using Docker

  1. Install Docker and Docker Compose.
  2. 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 _sass directories.
  • JavaScript files are located in the assets/js directory and are minified using uglify-js. The build script can be run with npm run build:js.
  • The markdown_generator directory contains Python scripts that can be used to generate markdown files for publications and talks from a TSV file.