Creating this website

I wanted a personal homepage/blog. I very often jot down my thoughts using Jupyter notebooks or MarkDown documents, so I looked for a tool that can create an website out of documents in these two formats. Since I love CI/CD pipelines, and totally wanted my future site to be automatically deployed to GitLab pages on each commit, I decided to use a static site generator (SSG). There are quite a few good SSG's, e.g. Pelican, Jekyll, Hugo, to name a few.

I settled on Nikola because I liked its documentations, out of the box support for Jupyter nokebooks and ease of configuring via a python file.

I roughly followed the guide by Jaakko Luttinen. The steps I took were:

  • Install nikola in a virtualenv.
  • Run nikola init to initialize a website.
  • Made jupyter notebooks the default format for posts in conf.py.
  • Enable MathJax rendering of $...$ delimited text.
  • Choose a theme by playing around with nikola subtheme.
  • Add CC-BY-SA license.
  • Configure GitLab CI so that on each commit, a fresh copy of the site gets deployed to GitLab pages.