This is my statically-generated Jekyll/Liquid/Bootstrap-based website. I started with the Allan lab webpage and modified it into a personal academic webpage that met my requirements. I worked in a unique set of the features that I desired and could not find in publicly available templates elsewhere. Some examples are:
- Automatically-generated buttons for DOI/PDF/ARXIV/BIB/Abstract information
- Automatically-generated bibliography files for arXiv and DOI-equipped publications via
arXiv2bib
anddoi2bib
(required scripts included inscripts/
and called viamakebib.py
) - Bibliography information and abstracts open in drown down wells via buttons
- Visual abstracts
- Fontawesome icons (email, CV, Google scholar, ResearchGate, GitHub, etc.)
- Dark color scheme
- Consistent and attractive
About me
page
I encourage the use of this webpage as a template for your own academic website. The remainder of this document describes how to do this. Broadly speaking, there are three steps:
- Fork this repository by clicking the
fork
button in the top-right corner of its Github page. - Install Jekyll (version < 4.0 required) on your local computer
- Run
$ bundle exec jekyll serve
in the repository root directory - Your site is now hosted locally at
localhost:4000
, which you can access with your web browser.- It will be automatically re-built as you save changes to the files it contains. Refreshing your web browser reveals these changes.
- Modify
_config.yml
as appropriate - Modify YAML database files, located in
_data/*.yml
, as appropriate - Modify individual pages, located in
_pages/*.md
, as appropriate
The pages listed in the top navbar are located in _config.yml
file.
The typical options are already included or commented, though additional pages can be created and listed here.
All pages are located in the _pages
directory.
Pages generally load information from YAML databases located as _data/*.yml
.
Creating new pages can be done by using existing pages as a template.
All pages require header information. Example header data for the 'Talks' page is below.
---
title: "Talks"
layout: gridlay
sitemap: false
permalink: /talks/
---
The layout
variable corresponds to HTML layouts in the _layouts
directory.
The differences between most layouts is subtle and gridlay
can generally be used.
The permalink must be unique for each page, and corresponds to the directory that will store the page in the compiled HTML.
Refer to your pages in _config.yml
via the title
variable.
All pages are written in Markdown as *.md
.
HTML commands and CSS styles can be directly used in a markdown files.
YAML file _data/publist.yml
contains the paper database loaded on the 'Publications' page.
Items in this database can be used as examples for new entries.
The publication page itself obeys the follow rules:
- If a year is not present, the publication will be listed under the 'Coming Soon' heading.
Otherwise it will be listed below either a 'Journal Papers' heading or the year of publication.
Choosing between these options is available via the
group_pub_by_year
variable in_config.yml
. - If the
arXiv
category is present, then an additional button will be placed next to the entry on the publications page. - For each paper a corresponding PDF can be placed in the
papers/
directory. The name of this file (with no .pdf extension!) should be placed in theurl
category of its entry inpublist.yml
. - If an abstract is present, an additional drop down to show it will be placed next to its entry on the publications page.
- Running
makebib.py
(Python3 required) will create bibliography files for all publications that have DOIs or arXiv identifiers. If this is done, an additional drop down to show it will be placed next to its entry on the publications page.
Once your site has been modified to fit your needs, you should host it somewhere so others can access it.
A simple way to host your site for free is via Github Pages.
This will provide you a free domain name at your_github_username.github.io.
Instructions on how to do this are available on their page.
They generally involve creating a repository on your Github titled your_github_username.github.io
and uploading your files there (everything excepted the _site/
directory, which the Github Pages service will generate using its own version of Jekyll).
Then, Github will automatically rebuild your site every time you push a commit to the repository (no bundle/jekyll commands required).
You can use a standard domain service (e.g. GoDaddy) to purchase a domain name.
Then, using the CNAME
file and modifying the DNS settings of the domain service, you can direct your custom domain to the Github Pages-generated site.
Detailed instructions for doing this for GoDaddy domains are available here, though analogous instructions apply to other services.
If you already have a hosting service for a static HTML webpage, such as some universities provide, you can build your website locally using bundle exec jekyll serve
.
Then, upload the resulting files located in the _site/
directory via SSH or FTP to this server.
Be sure that the site.url
and site.baseurl
are set appropriately in the _config.yml
file.
This page has many features I could not find elsewhere. However, it still does not support all the options I would like:
- Jekyll 4.0 and up is not supported. Building with these will break the theme of the site. I believe this is because the bootstrap version also needs to be upgraded. While such modern versions of Jekyll are not needed for most purposes and v3.X will likely be supported for a long time to come, some plugins do require the latest version of Jekyll.
- Jekyll-Scholar can build a publication page from bibliography files
*.bib
. However, it appears the latest version of Jekyll is required to do this. I enjoy my home-cooked publication page, but I understand that some will prefer uploading.bib
files as opposed to converting to theYAML
database format this site supports.
A list of static webpage generators is available here. For academic purposes, I believe most people use Jekyll or Hugo. I am mostly unaware of their relative merits. However, both are relatively easy to use and offer many templates to base your ideas off of. This, in combination with their large user bases, make them particularly attractive. This site is built with Jekyll.
Other Jekyll templates are of course available. Some of these are viable for very simple academic pages with little tuning:
However, they do not natively include many of the features I list at the top. For this reason, I decided to build my own theme.
I credit the Allen Lab for creating a beautiful academic research group webpage. Many parts of this site were adopted or copied from their laboratory webpage.
Copyright 2020, Spencer H. Bryngelson
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.