One day, two posts! In this post I talk about how I build this website
Building this website - The technicals
This website is hosted on github pages. Github pages is an easy and free way to setup a website.This link https://pages.github.com/ shows very clear steps on how to setup a github pages website. I work on a mac, so the steps are very straightforward for me. No issues here.
I bought the domain name though namecheap. If you are a student, I know that nsamecheap has a discount on .me domin names though https://education.github.com/pack. You can also get a free 1 yr ssl certificate though this, which I clearly still need to do.
I hooked my website to my github pages by going into my github pages settings, and adding a custom domain. This creates a CNAME file.
Github pages can host static websites. This means I could code my own website. Alternatively I could use Github’s website editor which lets me write markdown to create a website. Markdown (or more specifically Github Flovored Markdown GFM) is supposed to be a straightforward method to write HTML. I have to say that I wasn’t the biggest fan. This is because GFM is limited, and you are supposed to be able to write HTML to fill in the gaps in Markdown. However HTML and GFM sometimes have weird interactions. However, I do see the upside of GFM so I have used it to make this website. More on this later.
Since Github pages can only host static websites, it isn’t possible to use CMS systems that rely on dynamic content fetched from a database. However it isn’t entrely impossible to use a CMS with github. There are two ways around it - the first is to create a static html copy of your wordpress page hostel locally, and then upload this static html content to github. This can be done using a whole bunch of plugins available on wordpress. I didn’t choose to go this route. I didn’t even try this, so I don’t have any concrete proof to say why this is not the optimal way. I know that the html that wordpress creates can be a bit complicated, so using wordpress I would essentially be giving up control over my code to certain extend. Also, this would mean that my changes to code between git commits would be illegible. Finally, I wanted some experience with Markdown and wordpress isn’t ideally suited for this.
I installed Jekyll to work on my website. Jekyll isn’t exactly a CMS, but it is a method to organize your website in order to create a static HTML website by combinining modular components. I found this tutorial https://help.github.com/articles/setting-up-your-github-pages-site-locally-with-jekyll/ to install jekyll on github pages. It was a bit frustating because ruby couldn’t install certain Gems. My solution was to delete ruby and resinstall a new version using npm. Things finally worked.
I found this theme for jekyll which I really liked https://github.com/AkshayAgarwal007/Jekyll-Mono. I forked this repo and edited the code.
That’s pretty much it.