When I first created my own web page, it was hosted on Github Pages and made using jekyll. I found HTML quite boring and unnecessary, and I didn’t even know what CSS was for. I then changed to hugo and liked it as it was easy to write beautiful posts. The downside to those (or any) framework is that you loose control over your website: there are limited predefined themes and to create your own means having a considerable knowledge in web design. Also, to do simple things you have to read the manuals and invest the time on learning things that aren’t applicable outside the framework.
Because of those reasons, I decided to go for a really simple website made entirely from HTML and CSS written from scratch. As I had no previous experience, I inspected the source code of other simple sites and learned enough to make my own. For the blog system, I cloned lb and trimmed off the things I don’t need.
In order to be able to modify the header and footer of all the pages automatically, I save them in separate files: header.html and footer.html. Then, I created a Makefile that updates all html files whenever header or footer is changed. Also, this Makefile has a deploy target that when called will synchronise with the server using rsync. Just after synchronisation, a little bash command will update the latest 5 blog entries of the index.html file. The Makefile can be downloaded here
The only thing I’m missing with this system is the ability to automatically highlight source code (for the moment). Also, as every file gets pushed to the server, I can pull all the files as easily and have my environment ready to create/modify anything in any computer.