Skip to content

aryeelab/aryeelab.dfci.harvard.edu

 
 

Repository files navigation

Aryee lab website

build status demo gitter GitHub GitHub stars GitHub forks

Quick start

The lab website is built using Jekyll and the al-folio theme. Much of the documentation below is copied or adapted from https://alshedivat.github.io/al-folio.

Installation

Assuming you have Ruby and Bundler installed on your system (hint: for ease of managing ruby gems, consider using rbenv), first fork the theme from github.com:alshedivat/al-folio to github.com:<your-username>/<your-repo-name> and do the following:

$ git clone [email protected]:aryeelab/aryeelab.dfci.harvard.edu.git
$ cd aryeelab.dfci.harvard.edu
$ bundle install
$ bundle exec jekyll serve

In order to push/pull images from the container registry you must first authenticate with Google:

gcloud auth login

You need to run a one-time setup to configure docker to use Google authentication:

gcloud auth configure-docker

Build the site

bundle install
bundle exec jekyll build
bundle exec jekyll serve

The site will be built in the _site directory.

Build the Apache docker container that will host the site:

docker build -t gcr.io/aryeelab/www-aryee .

This builds an Apache docker container with the contents of _site placed into the Apache HTML dir (/usr/local/apache2/htdocs/).

Test the site:

docker run --rm -it -p 80:80 -p443:443 gcr.io/aryeelab/www-aryee

Go to http://localhost to see the site. If it looks OK build and push the image to the container registry:

bundle exec jekyll build
docker push gcr.io/aryeelab/www-aryee

NB: If you're working locally on an non amd64 machine (e.g. an Apple Silicon Mac) you'll need to build an amd64 image first:

bundle exec jekyll build
docker buildx build --platform linux/amd64 -t gcr.io/aryeelab/www-aryee .
docker push gcr.io/aryeelab/www-aryee

(Make sure you have authenticated first with gcloud auth configure-docker)

You can verify that your image is in the registry with:

gcloud container images list-tags gcr.io/aryeelab/www-aryee

Host the site

SSH into docker-aryee.partners.org (previously called docker-aryee.dipr.partners.org).

List the running containers:

docker ps

In case Docker is not running, you can start it like this:

systemctl start docker

Stop the existing website container:

docker stop [CONTAINER ID]

Pull the new image and start a container:

gcloud auth configure-docker # If necessary (for pull)
docker pull gcr.io/aryeelab/www-aryee && \
docker stop www-aryee && \
  docker rm www-aryee && \
  docker run --restart=always --name www-aryee -dit -p 80:80 -p443:443 -v /ssl:/ssl gcr.io/aryeelab/www-aryee

Note that you can run the above docker run command without the -v /ssl:/ssl option. In this case it will use a self-signed certificate instead of the ones stored in /ssl.

Upgrading from a previous version

If you installed the site as described above, you can upgrade the al-folio theme to the latest version as follows:

# Assuming the current directory is <your-repo-name>
$ git remote add upstream https://github.com/alshedivat/al-folio.git
$ git fetch upstream
$ git rebase upstream/v0.3

If you have extensively customized a previous version, it might be trickier to upgrade. You can still follow the steps above, but git rebase may result in merge conflicts that must be resolved. See git rebase manual and how to resolve conflicts for more information. If rebasing is too complicated, we recommend to re-install the new version of the theme from scratch and port over your content and changes from the previous version manually.

Features

Publications

Your publications page is generated automatically from your BibTex bibliography. Simply edit _bibliography/papers.bib. You can also add new *.bib files and customize the look of your publications however you like by editing _pages/publications.md.

Keep meta-information about your co-authors in _data/coauthors.yml and Jekyll will insert links to their webpages automatically.

Collections

This Jekyll theme implements collections to let you break up your work into categories. The theme comes with two default collections: news and projects. Items from the news collection are automatically displayed on the home page. Items from the projects collection are displayed on a responsive grid on projects page.

You can easily create your own collections, apps, short stories, courses, or whatever your creative work is. To do this, edit the collections in the _config.yml file, create a corresponding folder, and create a landing page for your collection, similar to _pages/projects.md.

Layouts

al-folio comes with stylish layouts for pages and blog posts.

The iconic style of Distill

The theme allows you to create blog posts in the distill.pub style:

For more details on how to create distill-styled posts using <d-*> tags, please refer to the example.

Full support for math & code

al-folio supports fast math typesetting through KaTeX and code syntax highlighting using GitHub style:

Photos

Photo formatting is made simple using Bootstrap's grid system. Easily create beautiful grids within your blog posts and project pages:

Other features

Theming

Six beautiful theme colors have been selected to choose from. The default is purple, but you can quickly change it by editing $theme-color variable in the _sass/variables.scss file. Other color variables are listed there as well.

Social media previews

al-folio supports preview images on social media. To enable this functionality you will need to set serve_og_meta to true in your _config.yml. Once you have done so, all your site's pages will include Open Graph data in the HTML head element.

You will then need to configure what image to display in your site's social media previews. This can be configured on a per-page basis, by setting the og_image page variable. If for an individual page this variable is not set, then the theme will fall back to a site-wide og_image variable, configurable in your _config.yml. In both the page-specific and site-wide cases, the og_image variable needs to hold the URL for the image you wish to display in social media previews.

Contributing

Contributions to al-folio are very welcome! Before you get started, please take a look at the guidelines.

If you would like to improve documentation, add your webpage to the list below, or fix a minor inconsistency or bug, please feel free to send a PR directly to master. For more complex issues/bugs or feature requests, please open an issue using the appropriate template.

Users of al-folio

The community of al-folio users is growing! Academics around the world use this theme for their homepages, blogs, lab pages, as well as webpages for courses, workshops, conferences, meetups, and more. Check out the community webpages below. Feel free to add your own page(s) by sending a PR.

Academics
Labs
Courses CMU PGM 2019
Conferences & workshops ML Retrospectives (NeurIPS 2019, ICML 2020)

License

The theme is available as open source under the terms of the MIT License.

Originally, al-folio was based on the *folio theme (published by Lia Bogoev and under the MIT license). Since then, it got a full re-write of the styles and many additional cool features.

Languages

  • JavaScript 93.4%
  • TeX 2.7%
  • HTML 2.6%
  • SCSS 1.0%
  • Shell 0.2%
  • Dockerfile 0.1%