Welcome
Hello readers! This is a personal blog for me to document primarily technical content related to my work as a system administrator. Expect frequent content comprised of weird fixes, clever solutions, opinions, how tos, and maybe a bit of humour. Oh, and some occasional thoughts on board games…
This site is hosted on Gitlab Pages and was generated using Jekyll. The theme is no-style-please with some modifications. The documentation for Gitlab Pages and Jekyll is very complete and extensive so I won’t go in to the details of how to make a statically generated website; however, as someone who primarly works with python (hence parseltongue) and jinja2 for configuration management, I have to say that liquid templating is fairly wonky and limited.
For instance, one cannot simply loop over keys and values of a hash in liquid. Hashes are treated like arrays with the first element being the key and the last element being the data.
# liquid hash
{% for item in collection %}
key={{ item|first }}
value={{ item|last }}
{% endfor %}
What’s particularily annoying here is that the value also needs to be iterated over in order to access the items if it’s also a hash. This results in a lot of nasty nested if statements and for loops for more complex data structures. Contrastly, other templating langages, such as jinja2, make this experience much simpler.
# jinja2 dictionary
{% for k,v in collection.iteritems() %}
key={{ k }}
value={{ v }}
{% endfor %}
So, I guess the question is why use Jekyll? Well, I’m a system administrator and I’m lazy so I chose the simplest, best supported solution available to make this site. Since I’ve purposely chosen to use a simple design, and the site is statically generated, it fits my needs perfectly. I don’t think I’d be able to handle the frustration of using liquid for dynamic sites though!
As for Gitlab Pages, the experience so far seems rock solid. It’s easy to get a statically generated site with CI/CD up and running with little effort. And it’s free! Github offers a similar free site hosting service as well but I prefer Gitlab as a company from an ethical perspective (free software) so I decided to use their service instead.
Finally, I love how easy it is to integrate Let’s Encrypt on Gitlab. After you setup your custom domain, all you have to do is click a checkbox. It’s pure KISS and I love it.
Never trust a snake