If you take a look at the Makefile in the source code repository of this website, you’ll find that it’s relatively simple. Almost all of the heavy lifting is performed by two tools:
“theme” from the “discount” Markdown parser
“cpp”, the C preprocessor
“theme” transforms pages, written in Markdown with an occasional piece of raw HTML, into full-fledged webpages with the use of a simple template system. The only additional rule is “style”, inserted so that individual pages could have their own CSS styles if they need it.
The C preprocessor, so far, is only used on the CSS style. It uses a bunch of
#define macros to predefine colors, so that changing the website’s
color palette is easier.
The blog pages use an additional script that reads the contents of each page,
finds their date (usually the 3rd line of the file prefixed with a
% sign) and
contents and, if there’s also a
<!-- cut --> tag, uses it to make a
description of each post.
In addition, the
dc directory contains versions of every page compiled to use
a limited subset of HTML/CSS – which theoretically would work on web browsers
supplied with the Sega Dreamcast.
In addition, the job of uploading the website’s contents is handled using GitLab’s Continuous Integration functionality. Whenever a new commit is made, GitLab runs a series of jobs to build, test and deploy the website.