Skip to main content

Using Hugo and GitHub Pages for my blog

· 4 min read

Sheep

I would like to say that this blog has been relaunched on GitHub using Hugo. If something never launched in the first place I am not sure it can be relaunched. I initially had a WordPress blog on SiteGround. It never made it out of test. I learned a lot about deploying WordPress and the different plugins. It did come in handy when my work started using WordPress for the company site. One of the things I immediately noticed is our site did not have a Favicon.

Hosting

Moving the blog to GitHub pages was motivated by a couple of factors. The first, it is hard to justify paying for hosting when nothing is being posted to the public. When the renewal came due, it was time to try a different option.

The second reason is that by hosting it on GitHub it would encourage me to learn git.

Static Site Generator

I chose Hugo as the static site generator for a couple reasons. It uses one executable for the program without a bunch of dependencies. It uses Go as the template language and I was hoping for one that used a C like language.

Hugo Theme

Currently I am using the DPSG theme for Hugo. I had minimo while developing the site and then Mainroad. DPSG is a fork of Mainroad. I tend to fixate more on the theme instead of the content. I am trying to stick with a theme until I create enough content. I am using Hugo modules for the theme. This makes it easy to update when a new version of the theme comes out.

Syntax Highlighting

I am using PrismJS for the syntax highlighting. Chroma which Hugo uses does not support languages such as DAX or M (Power Query). With PrismJS you can select what languages and options you want to support and then add the references to the config file for the JS and CSS files.

I chose to setup my deployment using 3 repositories. I use one for the source code that has the visibility set to private. I deploy using a Bash script. The repository for the Public folder is using a git submodule and is set to public visibility. Lastly, I have public repository for the comments.

Comments

I am using utterances for the blog comments. It uses GitHub issues to store the blog comments. I still have the option to turn off blog comments on a per post basis using the variable in the front matter.

Tools

To edit the markdown I use Visual Studio Code. It allows me to preview the code as I write. I use Windows Terminal which allows me to have multiple tabs open with Git Bash, PowerShell, and Command Prompt. Windows Terminal is amazing and keeps getting better.

Art

Profile picture and various art on the site is by Martin Bérubé. I have zero artistic ability and really like his animated drawings. When I first setup the blog on WordPress I used the drawing of the sheep as a placeholder for my profile picture - watermark and all. When it came time to pick the actual profile picture I had become attached to the picture. I went ahead and purchased it from Martin.

My goal

This is a place where I can discuss my journey with learning new topics on things that interest me. The main focus will be around the Microsoft BI Stack. Topics such as the DAX language, DAX Studio, Tabular Editor, Analysis Services and Power BI. I also plan to discuss tools that help facilitate that journey such as Windows Terminal and Visual Studio Code.