Setting up a Jekyll site (yet another tutorial)

You will find many such tutorials on the web, but this one is specifically geared for physics grad students at the University of Arizona.

First, install Jekyll. If you have Ruby set up on your computer, this should be as simple as doing:

gem install jekyll

Then make a new website with it:

jekyll new mywebsite

Then change to the website directory and serve it locally to live-preview changes - go to http://localhost:4000 on your browser.

cd mywebsite
jekyll serve

In the _posts directory, you can type up your blog entries in markdown, with the following format: year-month-date-title.md. For example, this entry is titled: 2016-03-07-setting-up-a-jekyll-site-yet-another-tutorial.md.

What if you don’t have the time to blog? Well, neither do I, but following the advice of Matt Might, I can perform ‘low-cost academic blogging’ by putting up the following on my website:

• Teaching materials
• If a colleague asks me about something that I think might be useful for the outside world to know (and won’t lead to me being scooped!) - I ‘reply all’ by putting up a post on that topic.
• When I give a presentation, I upload the slides and a summary.
• When I submit a paper to the arXiv, I would upload a summary and a link to the preprint.
• Calculations in Quantum Field Theory can be pretty involved, and if I think that I can save some other poor grad student the pain of calculating some Feynman diagrams or somesuch, I would put up my notes.

These are just a few examples, you can of course put whatever you want :)

Also, if you don’t want to deal with blog posts and dates and such, and just want to have pages, it turns out that you can do so by just creating new directories with markdown files in them. For example, if you are teaching Physics 141 and want to have a webpage for it, you can just make a directory called teaching, and place a markdown file called phys141.md in it. Jekyll will automatically parse it into appropriate pages.

There are a few quirks in deploying your webpage to the UA physics server, bohr (you have to change the base url in a certain way, etc) - you can do so by changing a couple of variables in the _config.yml file:

url: http://www.physics.arizona.edu/~username

# fixes finicky URLs with bohr

# If you want pages on your website in addition to blog posts
gems: [jekyll-paginate]

# Makes the links look pretty

# Enables incremental rebuilding - so you don't have to regenerate the # whole site when you just add a single post (significantly speeds things up)

incremental: true

If you’re a UA physics grad student trying to set up a website on bohr, you can do so by doing the following:

ssh username@physics.arizona.edu
makehome

This makes a public_html folder that you can put your website in, and you can access it with physics.arizona.edu/~username.

You can deploy your jekyll website to this public_html folder with a simple script.

#!/bin/sh

sudo jekyll serve --detach
ps aux|grep jekyll|awk '{print \$2}'|tail -n 1|xargs sudo kill -9
The first line generates your website and detaches the jekyll server. The second pushes your website to bohr. The third line kills the jekyll process for you automatically (so you don’t have to manually kill the process with kill -9 PID)