Makefile Site Generator

last updated 2020-11-22 21:10:34 by Simon Vandevelde


I first created this web site two summers before the end of my studies. Back then, I manually created a website using just HTML and CSS, and put quite a lot of work in making it as terrible as possible. Despite knowing of the existence of site/page builders, I chose this way for two reasons:
  1. I really disliked web development, and wanted to build a terrible site in protest.
  2. I wanted to experiment on what I could achieve using just HTML and CSS. This spawned pages such as my list of projects and my hobbies page.

Of course, this way of working has a very large downside: it is difficult to extend the website, because everything needs to be done manually. When I started experimenting with blog posts, I figured I would need a page builder of some kind. At first, I started to use Sphinx, a documentation generator used mainly for creating Python documentation, because I have a lot of experience using it (e.g. Pyidp3 and cDMN). However, because it is geared towards documentation, I still had to do a lot of manual work when creating blog posts. I used it for a while, but stayed on the lookout for a more simpler page builder, that would work without too much hassle.


Enter Makefile-Blog. From its GitHub page:
Makefile-Blog is a static blog website generator written in makefile with various tools. The makefile blog creates index, post index and rss files from the blog posts you wrote.
Makefile-Blog uses make to build every page on the website. Blog posts are simply HTML files, which you save in the posts directory. The tool then turns it into a full blog post, based on a template which you can very easily create yourself. The beauty of the system is that everything is super simple to do.

My first course of action was to create a custom template. Because my original website was already in basic HTML/CSS, all I had to do was copy and paste the code that I wanted to be part of the template! It could not be easier. After creating the template, I fiddled around with the index page for a bit. I wanted it to remain exactly the same as it was beforehand. Now when I want to build my website, all I need to do is execute the make command.

I would like to thank the project's author, ozy, for creating this tool. It has made my life infinitely easier.