Skip to content
Christopher Aicher edited this page Oct 9, 2017 · 11 revisions

UW-Mode Website Guide

This is a guide for the admins to our GitHub Pages website found at https://uw-mode.github.io.

About the Website

The UW-Mode website is hosted on GitHubPages and is built using Jekyll. The website code can be found at its GitHub repository https://github.com/UW-MODE/uw-mode.github.io/. Use Git to fork the repository.

The repository consists of two branches: master and source.

The source repo maintains the files, images, and code that Jekyll uses to build the website.
The master repo maintains the actual <html> files that are built by Jekyll (the files in _site/).

Building a Local Copy of the Website

This section describes how to build a local copy of the website using Jekyll.

First clone the repository to your machine.

git clone https://github.com/UW-MODE/uw-mode.github.io.git

Using Jekyll

Then follow the instructions here to setup Jekyll (Linux/Unix/MacOS only). A requirement is installing Ruby 2.0+ (and maybe bundler and rake).

We also require installing two jekyll plugins:

gem install jekyll-sitemap jekyll-scholar

See Plugin Docs for more details.

To build a local copy of the website, call jekyll serve (in the source branch) and open a browser to http://localhost:4000/. Jekyll builds the website in the /site folder and hosts it locally.

To build a local copy of website without viewing it, call jekyll build (or bundle exec jekyll build).

Adding Content to the Website

Making pull requests

See the README.md for details on how to make pull requests.

Approving pull requests

After a pull request is made, someone with Jekyll must verify there are no errors, by building the proposed site locally. If everything checks out, then approve the pull request.

There is one additional step in updating content to the live Website. After source changes are merged in, someone must update the master branch (the master branch is what's hosted by GitHub and public).

Updating the master branch requires using Jekyll to build the website's <html> files. The script deploy_to_master.sh (called from the source branch) will execute a Rakefile to update the master branch. This will copy the /_site folder of the source branch to master.

Remember: Changes to master affect the live website

How to add a person to the People page

First add the person to _data/people.yml under the appropriate group filling out the appropriate 'fields' (the file has examples). Required 'fields' are

  • first_name and last_name - your name
  • pic - filename of a photo of yourself in the /img/team/ folder
  • bio - a few line bio (currently not used)
  • social - a list of web link with urls (see examples)

Second place the person's photo in the /img/team/ folder. This photo should have a 1:1 aspect ratio (otherwise it will be rescaled, which doesn't look so great). Note: the image should match the filename specified in the pic field.

How to add a Publication

Add the bibtex of a publication to _bibliography/pubs.bib (make sure you are on the source branch).

Then either:

  • Add a hyperlink to a pdf copy of the publication using the link field in the bibtex.
  • If you want to add link to your code, Add a hyperlink to a your code using the code field in the bibtex.

How to add a Publication - Advanced Details

We use the Jekyll Scholar plugin to manage and build our publications page. BibTex formatting is controlled in the _config.yml file (style) and in the _layout/bib.html file (url, bibtex popup). Layout of the publications page is controlled by publications/index.md.

To place the bibliography in a markdown files, include {% bibliography %}. To filter the bibliography to those with year = 2017, include {% bibliography --query @*[year=2017] %}`.

See Jekyll Scholar for more tips.

How to add a Blog Post

To do

Adding Math Using MathJax

To do

Useful References

The website is hosted by GitHub. For more details on GitHub Pages see Link and Jekyll (the backend software that runs it) Link Link2.

The website is based on the Agency bootstrap theme for more details, read documentation